关于Java处理JSON字符串的新手问题 20
net.sf.json.JSONArray JArray=new net.sf.json.JSONArray();
JArray=JSONArray.fromObject(jsonStr);
Map<String , Object> map=new HashMap<String, Object>();
for (int i = 0; i < JArray.size(); i++) {
Object o=JArray.get(i);
jsonobject = (net.sf.json.JSONObject) o;
Set<String > keys=jsonobject.keySet();
for (String string : keys) {
Object values=jsonobject.get(keys);
map.put(string, values);
}
}
System.out.println(map);
各位师傅好,我这个代码返回结果是{attributes=null, face_rectangle=null, face_token=null}
我想问如何在map的key中再加一个map,代码如何写? 展开
第一点:你既然使用了net.sf.json.JSONObject对象引入了jar包直接使用其的fromObject将对象转为字符串效率更高,出错的概率也更小一些。
第二点:对象中套对象的方式也很简单,如这样
public static void main(String[] args) {
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
map3.put("value","Male");
map2.put("gender",map3);
map1.put("attributes",map2);
JSONObject json = JSONObject.fromObject(map1);
System.out.println(json);
}
第三点:将字符串解析回来。
Object obj2 = JSONObject.toBean(json,Map.class);
Map map = (Map) obj2;
MorphDynaBean map4 = (MorphDynaBean) map.get("attributes");
MorphDynaBean map5 = (MorphDynaBean) map4.get("gender");
String male = (String) map5.get("value");
System.out.println(male);
第四点:
可以参考:网页链接
或者百度搜索:java操作json数据之net.sf.json-lib 经验