//==============JSONObjec=====================//
// 这是json格式的字符串
String json = "";
// json格式的字符串转Java的类型为D的domin对象
D d = JSONObject.parseObject(s, D.class);
// D再转成json格式的字符串
// 将java对象转成json格式的字符串
// 这两个方法都可以使用
String s2 = JSONObject.toJSONString(d1);
String json2 = JSON.toJSONString(d);
// 创建一个JSONObject对象,里面其实是一个map,当作map
JSONObject jsonObject = new JSONObject();
jsonObject.put("nodeId","v1");
jsonObject.put("planId","v2");
// 将JSONObject对象转成目标D对象
D d1 = JSONObject.toJavaObject(jsonObject, D.class);
//==============JSON=====================//
//JSON的方法更加丰富
//将json格式的字符串转为jsonArray
JSONArray jsonArray = JSON.parseArray("");
//将json格式的字符串转为类型为D的list,这里可以看到jsonArray期其实等效于java中的List
List<D> ds = JSON.parseArray("", D.class);
//将json格式的字符串转为jsonObject
JSONObject jsonObject1 = JSON.parseObject("");
//将json格式的字符串转为D类型的java对象
D d2 = JSON.parseObject("", D.class);
//将jsonObject类型转为D类型的对象
D d3 = JSON.toJavaObject(jsonObject, D.class);
//将java对象转为json格式的字符串
String s3 = JSON.toJSONString(d1);
总结
其实json转换思路很明显:
1、对于json格式的字符串,如果没有给定要转的目标类型,那么json就将其转为jsonObject类型,因为不知道类型,所以默认解析最外一层,并用map保存;
2、对于json格式的字符串,如果给定了要转的目标类型,那么json就会根据给的的类型去解析,相同字段,类型合适保存,不同字段舍去。
3、对吧JSONObject和JSON工具类,发现JSON的方法功能更加强大些,推荐优先使用 JSON工具类。记忆技巧,原类型是json类型的字符串,用parse开头的方法;原类型是java类型的,用to开头的方法。