Loading

JSON数据处理

一、fastjson

说明:
  • 测试包版本:fastjson-1.2.16.jar

  • JSON 是 fastjson 包中较大的父类

  • JSONObject 继承了 JSON 类,并且实现了 Map 接口

初始化数据:
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("id", "130");
jsonMap.put("name", "xz");
jsonMap.put("age", "23");
List<String> arrayList = new ArrayList<>();
arrayList.add("123");
arrayList.add("456");
arrayList.add("789");
jsonMap.put("list", arrayList);
1、Java转JSON:
// Java转JSON字符串:可以使用JSON.toJSONString()或者JSONObject.toJSONString()
// ps:懒人就用JSON.toJSONString()吧,效果一样
String jsonStr = JSON.toJSONString(jsonMap);
// Java转对象:
Object jsonObject = JSON.toJSON(jsonMap);
2、JSON转Java:
  • JSON 与 JSONObject 都可以调用以下方法
1>parseObject() 方法
// JSON.parseObject()方法返回JSONObject数据,再.getObject():参数为键名, class对象
// JSONObject可以访问Map集合的方法,因为它实现了Map接口
JSONObject parseObject = JSON.parseObject(jsonStr);
Object list1 = parseObject.get("list");
List<String> list2 = parseObject.getObject("list", List.class);	// list1等价于arrayList
/**
String id = parseObject.getString("id");
boolean booleanValue = parseObject.getBooleanValue("");
*/
2>parse() 方法
// parse()方法返回Object类型数据,需要经过强转后再进行取值
Map<String, Object> map = (Map<String, Object>) JSON.parse(jsonStr);
List list3 = (List) map.get("list");
3>parseArray() 方法
// parse()方法返回JSONArray类型数据
// JSONArray可以直接访问List集合方法,因为它实现了List接口
String array = JSON.toJSONString(arrayList);
JSONArray objects = JSON.parseArray(array);
List<String> list = JSON.parseArray(array, String.class);

PS:JSON转键值对类型:parseObject();JSON转非键值对类型:parseArray()

posted @ 2021-12-02 18:58  Zzxij  阅读(220)  评论(0)    收藏  举报