第一点:你既然使用了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 经验
Object values=jsonobject.get(keys);这一句写错了,应该是Object values=jsonobject.get(string );不然打印出来是空,你这个json字符串本来就很短,没有规律,不用map中嵌套map,如果嵌套的话不还如写一个实体类把key当时实体类中的属性
自己写怎么分割怎么替换类就好了,别用通用的,到时候错误百出。