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