请问如下json数据如何用java封装,麻烦高手指教。

var b2 = [
{value : "0", data : [{value : "0", text : "请选择市"}]},
{value : "1",data : [
{value : "0", text : "请选择市"},
{value : "1", text : "北京"}
]
},
{value : "2",data : [{value : "0", text : "请选择市"},{value : "2", text : "上海市"}]},
{value : "3",data : [
{value : "0", text : "请选择市"},
{value:"3",text:"苏州"},
{value:"4",text:"泰州"},
{value:"5",text:"王州"}
]
}
];
如何用jsonarray 来封装这个数组 传给前台页面使用。

Object[][] arr = new Object[4][10];
String str = "{array:[{value : \"0\", data : [{value : \"0\", text : \"请选择市\"}]}," +
"{value : \"1\",data : [{value : \"0\", text : \"请选择市\"},{value:\"1\",text:\"北京\"}]}," +
"{value : \"2\",data : [{value : \"0\", text : \"请选择市\"},{value:\"2\",text:\"上海市\"}]}," +
"{value : \"3\",data : [{value : \"0\", text : \"请选择市\"},{value:\"3\",text:\"苏州\"},{value:\"4\",text:\"泰州\"},{value:\"5\",text:\"王州\"}]}" +
"]}";
JSONObject jo = JSONObject.fromObject(str);
List<Object> ja = (List<Object>) JSONArray.toCollection(jo.getJSONArray("array"));
int i=0,j=1;
for(Object o:ja){
JSONObject jos = JSONObject.fromObject(o);
arr[i][0] = jos.get("value");
List<Object> jas = (List<Object>) JSONArray.toCollection(jos.getJSONArray("data"));
for(Object ob:jas){
JSONObject jobs = JSONObject.fromObject(ob);
if(!jobs.isNullObject()){
arr[i][j] = jobs;
j++;
}
}
i++;
}
for(int k = 0;k<arr.length;k++){
for(int h = 0;h<arr[k].length;h++){
System.out.println(arr[k][h]);
}
}
拿去看看吧,失败的程序╮(╯▽╰)╭,楼主用Map比较好,数组啊,list啥的可以试试其他方案(value做一个list,text做一个list,不过判断的时候可能会比较麻烦)追问

我的需求就是封装一个这样的json数据 提供给前台javascript调用。请问下,你说的map怎么做呢?

追答

Map> map = new TreeMap>();
JSONObject jo = JSONObject.fromObject(str);
List ja = (List) JSONArray.toCollection(jo.getJSONArray("array"));
for(int i = 0;i list = new ArrayList();
JSONObject jos = JSONObject.fromObject(ja.get(i));
String key = (String) jos.get("value");
List jas = (List) JSONArray.toCollection(jos.getJSONArray("data"));
for(int j = 0;j> entry:map.entrySet()){
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
自己跑一下代码,list这里是可以继续解析的,或者直接用一个map替换掉,
不太明白你的意思了,后台直接把这个字符串转换成json对象,传到前台就OK了,交给Js来处理,为什么要重新解析一遍。。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
推荐楼主试试google对json封装的工具类:GSON,小弟入行不深,对gson的研究也不多,有个不怎么高端的建议,可以用gosn将这个json串转为java对象,在put到jsonarray中,见笑了
第2个回答  2013-06-28
JSONString可以直接接受java字符串