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

varb2=[{value:"0",data:[{value:"0",text:"请选择市"}]},{value:"1",data:[{value:"0",text:"请... 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 来封装这个数组 传给前台页面使用。
展开
 我来答
琢离飘04
推荐于2016-10-04 · TA获得超过301个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:237万
展开全部
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来处理,为什么要重新解析一遍。。
百度网友d384eac
2013-06-28
知道答主
回答量:23
采纳率:0%
帮助的人:25.7万
展开全部
推荐楼主试试google对json封装的工具类:GSON,小弟入行不深,对gson的研究也不多,有个不怎么高端的建议,可以用gosn将这个json串转为java对象,在put到jsonarray中,见笑了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4465412
2013-06-28 · TA获得超过184个赞
知道小有建树答主
回答量:562
采纳率:0%
帮助的人:382万
展开全部
JSONString可以直接接受java字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式