Java FastJson的使用

一.简介

  FastJson是一个Java库,可以实现序列化和反序列化的操作。

  可以通过配置maven依赖安装。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.73</version>
</dependency>

 二.序列化

  序列化就是将Java对象转化为JSON格式的字符串。

String objJson = JSON.toJSONString(Object object);

  例子1:将Map转成JSON。

Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");
String mapJson = JSON.toJSONString(map);

//输出
{"key1":"One","key2":"Two"}

  例子2:将List<Map>转化为JSON格式的字符串。

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key2", "Two");

Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");

list.add(map1);
list.add(map2);

String listJson = JSON.toJSONString(list);

//输出
[{"key1":"One","key2":"Two"},{"key3":"Three","key4":"Four"}]

  例子3:将对象转化为JSON格式的字符串。

User user = new User();
user.setUserName("李四");
user.setAge(24);

String userJson = JSON.toJSONString(user);

//输出
{"age":24,"userName":"李四"}

 三.反序列化

  反序列化就是将JSON格式的字符串转化为Java对象。

  例子1:泛型的反序列化,使用TypeReference传入类型信息。

String mapJson = "{\"key1\":\"One\",\"key2\":\"Two\"}";
Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
System.out.println(map1.get("key1"));
System.out.println(map1.get("key2"));

//输出
One
Two

  例子2:集合反序列化。

String listJson = "[{\"key1\":\"One\",\"key2\":\"Two\"},{\"key1\":\"Three\",\"key2\":\"Four\"}]";
List<Map> list1 = JSON.parseArray(listJson, Map.class);
for(Map<String, Object> map : list1){
    System.out.println(map.get("key1"));
    System.out.println(map.get("key2"));
}

//输出
One
Two
Three
Four

  例子3:泛型的反序列化(使用TypeReference传入类型信息)。

String mapJson = "{\"key1\":\"One\",\"key2\":\"Two\"}";
Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
System.out.println(map1.get("key1"));
System.out.println(map1.get("key2"));

//输出
One
Two

 

 

  

 

posted @ 2021-07-25 19:59  shine声  阅读(442)  评论(0编辑  收藏  举报