日期:2014-05-20  浏览次数:20673 次

Json格式的数据怎么转换成List?
{"category_attribute_search_response":{"code":"0","total":14,"attributes":[{"aid":3201,"name":"品牌","cid":"1351"},{"aid":7716,"name":"类型","cid":"1351"},{"aid":8668,"name":"价格","cid":"1351"},{"aid":8664,"name":"款式","cid":"1351"},{"aid":8665,"name":"领形","cid":"1351"},{"aid":8667,"name":"材质","cid":"1351"},{"aid":10649,"name":"尺码","cid":"1351"},{"aid":14225,"name":"布种","cid":"1351"},{"aid":14224,"name":"板型","cid":"1351"},{"aid":14227,"name":"工艺","cid":"1351"},{"aid":14226,"name":"风格","cid":"1351"},{"aid":14223,"name":"厚薄","cid":"1351"},{"aid":1000000041,"name":"尺寸","cid":"1351"},{"aid":1000000027,"name":"颜色","cid":"1351"}]}}
这是json格式的数据,我想借助jar包转换成list或者javaBean实体,应该怎么弄?
知道的代码发一下,今天试验了网上的好几个方法,都不成功。大家帮下忙了。

------解决方案--------------------
JSONObject.toBean
------解决方案--------------------
String list = request.getParameter("json");
JSONArray data = JSONArray.fromObject(list);
for(int i=0;i<data.size();i++){
     JSONObject jobj =  (JSONObject) data.get(i);
     String name = jobj.get("name");
}



以上代码就是从json数组装换的。
------解决方案--------------------
用Gson等处理json的包。或者自己写个实现也比较简单
------解决方案--------------------
楼主的这个json数据是一个object
使用JSON-lib的话

JSONObject jsonObject=JSONObject(楼主的这个json格式字符串);
你的对象类型 object=(强转你要的类型)JSONObject.toBean(jsonObjct,你要转换的对象的class);

google Gson的话简单一点

Gson gson=new Gson();
你的对象类型 object=gson.fromJson(楼主的json格式字符串,你要转换的对象的class);

这个object就是你要的
------解决方案--------------------
那你可以获得这个category_attribute_search_response这个属性下的值拿去toBean啊

String json=你的json字符串;
JSONObject jsonObject=JSONObject.fromObject(json);
json=jsonObject.getString("category_attribute_search_response");
你的类型 object=(你的类型)JSONObject.toBean(json,你的class);

------解决方案--------------------
楼上方法基本都可行 自己写不看好,还是用别人的成熟的框架吧, 推荐一个 fastJSON 很不错的哟!