json如何转换为java类型
假如我现在从js中传到java中的一个参数形式为:
[{"id":10,"name":"yang"},{"id":11,"name":"chao"}]
我在java中得到这个数组,但是如何得到各个id和name的值呢。而且,我这个id和name并不是固定的,有可能是别的名字,比如myId,myName。
请高手指教!谢谢。
------最佳解决方案--------------------String json = "{\"id\":10,\"name\":\"yang\",\"id\":11,\"name\":\"chao\",\"id\":12,\"name\":\"jiang\"}";
JSONObject object = JSONObject.fromObject(json);
Map<String, Object> map = new HashMap<String, Object>();
map = object;
for(String key : map.keySet()){
System.out.println("key="+key+" value="+map.get(key));
}
打印结果:
key=id value=[10,11,12]
key=name value=["yang","chao","jiang"]
希望能帮到你
------其他解决方案--------------------因为你这个不是标准的json格式,我觉得
1、把[{"id":10,"name":"yang"},{"id":11,"name":"chao"}]先转化为标准json格式的list;
2、再对list进行遍历处理;
String object = "[{\"id\":10,\"name\":\"yang\"},{\"id\":11,\"name\":\"chao\"}]";
List<String> objects = new ArrayList<String>() ;
while(object.indexOf("}") > 0){
String str = object.substring(object.lastIndexOf("{"), object.lastIndexOf("}")+1);
object = object.substring(0, object.lastIndexOf("{"));
objects.add(str);
}
List<Map> listResult = new ArrayList<Map>();
for(String str: objects){
JSONObject json = JSONObject.fromObject(str);
listResult.add(json);
}
for(Map m: listResult)
System.out.println(m.toString());
处理后的结果是一个List<Map>
打印出来的结果是:
{"id":11,"name":"chao"}
{"id":10,"name":"yang"}
------其他解决方案--------------------json转成 Map对象 可以不。 这个比较简单
------其他解决方案--------------------可以用json.jar包解析json格式的内容。
要求字段不确定可以解析成object对象,在通过getXXX()方法取数据。
------其他解决方案--------------------json.org去看看吧
------其他解决方案--------------------http://www.cnblogs.com/moonvan/archive/2011/11/09/2242403.html
------其他解决方案--------------------解析成 List<Map<String,Object>>
------其他解决方案--------------------