标签:情况 https integer out uri href parse mil bool
不积跬步,无以至千里;不积小流,无以成江海。
FastJSON
将 Java 对象转换为 JSON 格式,也可以将 JSON 字符串转换为 Java 对象。
依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.23</version> </dependency>
序列化: 把JavaBean对象转成JSON格式的字符串
1. 基本的序列化
String objJson = JSON.toJSONString(Object object);
例子: 将对象转成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"}
例子: 自定义JavaBean转成JSON
User user = new User(); user.setUserName("李四"); user.setAge(24); String userJson = JSON.toJSONString(user);
输出结果:
{"age":24,"userName":"李四"}
2. 输出格式化后的 JSON 字符串
String objJson = JSON.toJSONString(Object object, boolean prettyFormat);
例子: 对象转成格式化后的JSON字符串
User user = new User(); user.setUserName("李四"); user.setAge(24); String listJson = JSON.toJSONString(user, true);
输出结果:
{ "age":24, "userName":"李四" }
3. 其他特性支持
例子: 日期格式化
String dateJson = JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat); System.out.println(dateJson);
输出结果:
"2014-05-29 21:36:24"如
如果不加SerializerFeature.WriteDateUseDateFormat
输出结果:
1401370199040
例子: 使用单引号
String listJson = JSON.toJSONString(list, SerializerFeature.UseSingleQuotes);
输出结果:
{‘age‘:24,‘userName‘:‘李四‘}
例子: 输出null字段
缺省情况下FastJSON不输入为值Null的字段,可以使用SerializerFeature.WriteMapNullValue使其输出
Map<String, Object> map = new HashMap<String,Object>(); String b = null; Integer i = 1; map.put("a", b); map.put("b", i); String listJson = JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);
输出结果:
{"a":null,"b":1}
反序列化: 把JSON格式的字符串转化为Java Bean对象
1. 基本的反序列化
Object object = JSON.parseObject(objectJson, Object.class);
例子: 将上述例子中的user反序列化
User user1 = JSON.parseObject(userJson, User.class); System.out.println(user1.getUserName());
输出结果: 李四
例子: 将list反序列化
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); 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
例子: 泛型的反序列化(使用TypeReference传入类型信息)
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
博客借鉴: https://blog.csdn.net/flysun3344/article/details/54707965
标签:情况 https integer out uri href parse mil bool
原文地址:https://www.cnblogs.com/smilexuezi/p/14824577.html