在java中将HashMap格式转换

[{orgname=化学组,name=张三},{orgname=化学组,name=张四},{orgname=教务处,name=教1},{orgname=教务处,name=... [{orgname=化学组, name=张三}, {orgname=化学组, name=张四}, {orgname=教务处, name=教1}, {orgname=教务处, name=教2}, {orgname=教学处, name=学1}, {orgname=数学组, name=数1}]

请问如何将上面格式的数据在java中转换如下格式
[ {
"text" : "化学组",

"children" : [
{
"id" : 2,
"text" : "张三"
},
{
"id" : 3,
"text" : "张四"
}
]
} ,
{
"text" : "教务处",

"children" : [
{
"id" : 2,
"text" : "教1"
},
{
"id" : 3,
"text" : "教2"
}
]
},
{
"text" : "教学处",
"children" : [
{
"id" : 2,
"text" : "学1"
}
]
}
]
展开
 我来答
yugi111
推荐于2016-10-20 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
//回答完毕,采纳即可

import java.util.ArrayList;
import java.util.HashMap;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Kyo
{
public static void main(String[] args)
{
String[] orgnames = { "化学组", "化学组", "教务处", "教务处", "教学处", "数学组" };
String[] names = { "张三", "张四", "教1", "教2", "学1", "数1" };
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
for(int i = 0; i < names.length; i++)
{
HashMap<String, String> map = new HashMap<String, String>();
map.put("orgname", orgnames[i]);
map.put("name", names[i]);
list.add(map);
}
System.out.println(list);
JSONArray array = JSONArray.fromArray(list.toArray());
JSONArray result = new JSONArray();
JSONObject object = new JSONObject();
for(int i = 0; i < array.length(); i++)
{
JSONObject obj = array.getJSONObject(i);
String orgname = obj.get("orgname").toString();
String name = obj.getString("name").toString();
if(!object.has(orgname))
{
JSONObject cobj = new JSONObject();
cobj.set("text", orgname);
JSONArray carr = new JSONArray();
JSONObject aobj = new JSONObject();
aobj.set("id", 2);
aobj.set("text", name);
carr.put(aobj);
cobj.set("children", carr);
result.put(cobj);
object.set(orgname, orgname);
}
else
{
for(int j = 0; j < result.length(); j++)
{
JSONObject joj = result.getJSONObject(j);
if(orgname.equals(joj.get("text").toString()))
{
JSONArray objc = joj.getJSONArray("children");
JSONObject aobj = new JSONObject();
aobj.set("id", objc.length() + 2);
aobj.set("text", name);
objc.put(aobj);
break;
}
}
}
}
System.out.println(object);
System.out.println(result);
}
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式