JSON字符串的拼接问题。

一个javaweb项目中有一个这种格式的json数据:
[
{
"cateName": "护肤",
"id": 1,
"pid": 0
},
{
"cateName": "彩妆",
"id": 2,
"pid": 0
},
{
"cateName": "洁面",

"id": 3,
"pid": 1
},
{
"cateName": "化妆水",

"id": 4,
"pid": 1
},
{
"cateName": "洁面乳",

"id": 5,
"pid": 3
}
]
我想把它转换成下面这种格式:
[
{
"cateName": "护肤",
"id": 1,
"pid": 0,
"children":[{
"cateName": "化妆水",

"id": 4,
"pid": 1
}]
},
{
"cateName": "彩妆",
"id": 2,
"pid": 0
},
{
"cateName": "洁面",

"id": 3,
"pid": 1,
"children":[{
....
}]
},

{
    "cateName": "洁面乳",  
    "id": 5, 
    "pid": 3,
            "children":[{
                ....
            }]
}

]
就是跟这个格式一样的:http://www.jeasyui.com/demo/main/treegrid_data1.json

请问一下要怎么处理?
没有cb了不能悬赏见谅。。。

json数据的两种形式,JSONObject 和JSONArray

前端还是后端?前端的话试试json[0].cateName,后端的话试试JSONArray或者List

问题已解决 我在后台写了一个方法来组装tree
public void formatjson(List categories,List categories2){
if (categories.size()!=0) {

        List<Category> cate4=new ArrayList<Category>();
        for (Category category1 : categories2) {
            List<Category> child=category1.getChildren();//拿到顶级目录的子类
            for (Category category : categories) {
                if (category1.getId().intValue()==category.getPid().intValue()) {
                    child.add(category);
                    cate4.add(category);
                }
            }
        }

        //移除已经添加的类
        for (Category category : cate4) {
            categories.remove(category);
        }

        //递归调用函数,遍历子类的子类
        for (Category category : categories2) {
            formatjson(categories, category.getChildren());
        }

    }
}