问题描述
- 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字符串
concat拼接json字符串
[java]字符串的拼接问题
解决方案二:
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());
}
}
}