Array 转树形结构 
处理器xiang.helper.ArrayTree或是utils.arr.Tree,传入有父子节点关系的对象数组,返回转换后树形结构数据。转换后的子节点的数据保存在children属性中,可嵌套。
典型的应用是转换保存在数据库中的菜单数据成 JSON 对象。
- 参数 1: 记录集合
 - 参数 2: 数据转换配置项,配置项定义:
 
go
// ArrayTreeOption Array转树形结构参数表
type ArrayTreeOption struct {
	Key      string      `json:"id"`       // 主键名称, 默认为 id
	Empty    interface{} `json:"empty"`    // Top节点 parent 数值, 默认为 0
	Parent   string      `json:"parent"`   // 父节点字段名称, 默认为 parent
	Children string      `json:"children"` // 子节点字段名称, 默认为 children
}一般会设置empty=null与parent,表示如果这个parent对应的字段如果是空值说明是树顶点。
示例
js
res = Process('xiang.helper.ArrayTree', cate, {
  parent: 'parent_id',
  empty: null
});删除空对象
js
function removeEmpty(obj) {
  for (var prop in obj) {
    if (obj[prop] === null || obj[prop] === undefined) {
      delete obj[prop];
    } else if (typeof obj[prop] === 'object') {
      removeEmpty(obj[prop]);
      if (Array.isArray(obj[prop]) && obj[prop].length === 0) {
        delete obj[prop];
      } else if (Object.keys(obj[prop]).length === 0) {
        delete obj[prop];
      }
    }
  }
  return obj;
}