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

json字符串中的很多对象怎么转成java中的对象...
String jsonstr=" {name:"北京",area:"16000",renkou:"1000万"},  
{name:"上海",area:"10000",renkou:"1000万"},

....";

就像这样一个json字符串,我有一个Area类,要用从jsonstr中解析出来的对象的name,area,renkou,给新建的java对象赋值,然后把该java对象添加到arraylist中,怎样做,希望大哥些帮帮忙...

------解决方案--------------------
添加JSON.jar到classpath中,然后使用JSONObject.from(strObj)或者JSONArray.from(strObj),然后通过obj.get(key)即可拿出指定的key对应的val。
------解决方案--------------------
String jsonstr :这个字符串 既不是 JSONObject 也不是JSONArrray 对象 toString()后的字符串,只是有很多个JSONObject连在一起而已。
JSONArray 差了一对大括号[];"[....]"这个造型的字符串才是 JSONArray

比如一个定义了一个 类A 包含了三个属性  name、area、renkou

JSON 有个 json.me 这个工具比较好用

jsonstr = "[" + jsonstr + "]";
JSONArray jsonArr = new JSONArray(jsonstr); // 转成arr
List<A> list = new ArrayList<A>();
for(int i=0, len=jsonArr.length(); i<len; i++) {
    JSONObject t = jsonArr.optJSONObject(i);
    A a = new A();
    a.setName(t.optString("name"));
    ......
    list.add(a); 
}


一楼那个方式 也可以 但是 你 还是要把这个 JSONArray字符串 补全 
------解决方案--------------------
json 也有类似xpath的工具,像 Google code 上的 json-path
------解决方案--------------------
Thumbnail 弄成一个类 同样的方式转就是了 
 
 {
       "precision": "zip",
       "Latitude":  37.7668,
       "Longitude": -122.3959,
       "Thumbnail": {
           "Url":    "http://www.example.com/image/481989943",
           "Height": 125,
           "Width":  "100"
       }
    }
这样一个 JSONObject  t对象,
JSONObject th = t.optJSONObject("Thumbnail"); 后面操作一样了
Thumbnail  这个你的写一个类 包含 那几个属性 
------解决方案--------------------
引用:
引用:添加JSON.jar到classpath中,然后使用JSONObject.from(strObj)或者JSONArray.from(strObj),然后通过obj.get(key)即可拿出指定的key对应的val。

大哥,不是这个意思,我的意思是:哪个json字符串,包含了很多json对象哦,怎样一一解析出来,把每一个……

自动key放到对应的java对象的属性上我没弄过,不知道有没有这样的第三方库?
我的做法是想先通过key将val取出来,然后再通过反射将key对应的java属性上赋值val。这样逐个属性赋值。
------解决方案--------------------
所需jar:
commons-beanutils.jar
commons-collections-3.2.1.jar
commons-lang-2.6.jar
ezmorph-1.0.3.jar
json-lib-2.4-jdk15.jar

import net.sf.json.JSONObject;

/**
 * 把json格式的字符串转换成对象
 * @param json 字符串
 * @param class1  对象的class
 * @return Object
 */
@SuppressWarnings("unchecked")
public Object jsonToObject(String json, Class class1) {