码迷,mamicode.com
首页 > 编程语言 > 详细

一起学Java(五十三)----- FastJSON

时间:2021-06-02 15:24:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:情况   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

一起学Java(五十三)----- FastJSON

标签:情况   https   integer   out   uri   href   parse   mil   bool   

原文地址:https://www.cnblogs.com/smilexuezi/p/14824577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!