1.使用fastJson,首先引入fastJson依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>

2.JSON String to Java Bean

/**
* JSON->Java Bean
*/
@Test
public void test1(){
Person person = new Person().setId("1").setName("fastJson").setAge(1);
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
//传入字节码,调用parseObject
Person person1 = JSON.parseObject(jsonString, Person.class);
System.out.println(person1);
}

3.JSON String to List Java Bean

/**
* JSON->List Java Bean
*/
@Test
public void test2(){
List<Person> list = Arrays.asList(new Person().setId("1").setName("fastJson1").setAge(1),
new Person().setId("2").setName("fastJson2").setAge(2),
new Person().setId("3").setName("fastJson3").setAge(3));
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
//传入字节码,调用parseArray
List<Person> person1 = JSON.parseArray(jsonString, Person.class);
System.out.println(person1);
}

4.JSON String to List String

/**
* JSON->List String
*/
@Test
public void test3(){
List<String> list = Arrays.asList("hello","world","hello world");
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
   // new TypeReference<List<String>>() {}
List<String> list1 = JSON.parseObject(jsonString, new TypeReference<List<String>>() {});
System.out.println(list1);
}

5.JSON String to List<Map<String,Object>>

/**
* JSON->List<Map<String,Object>>
*/
@Test
public void test4(){
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
list.add(map);
Map<String,Object> map1 = new HashMap<>();
map1.put("key11","value11");
map1.put("key22","value22");
list.add(map1);
Map<String,Object> map2 = new HashMap<>();
map2.put("key111","value111");
map2.put("key222","value222");
list.add(map2);
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
  // new TypeReference<T>
List<Map<String, Object>> maps = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() {});
System.out.println(maps);
}

6.JSON.toJSONString中序列化map中的空字符串会出现空对象问题

@Test
public void testJSON() throws Exception {
Map<String,String> map = new HashMap<String, String>();
map.put("aaa",null);
map.put("bbb",null);
map.put("ccc",null);
System.out.println(map);
String s = JSON.toJSONString(map);
System.out.println(s);
Map<String, String> stringMap = JSON.parseObject(s, new TypeReference<Map<String, String>>() {
});
System.out.println(stringMap);
}

上面的代码需要经过如下修改,才不会出现空对象问题

String s = JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);

7.总结:如果大家在使用fastJSON序列化时出现问题,可以考虑朝着序列化这个方向考虑问题,多了解了解SerializerFeature。我们在学习并使用某一项api时,不仅仅要会这个api,同时

要更加注意这个框架,这个工具类所存在的问题,会有哪些坑!

最新文章

  1. BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
  2. 自定义Java集合
  3. Notepad++列编辑模式
  4. 解决pageControl页面设置无效问题
  5. KMP的原理详细讲解
  6. Spring(3.2.3) - Beans(5): 集合属性的注入
  7. ajax请求参数为中文乱码的情况
  8. 14.19 InnoDB and MySQL Replication InnoDB 和MySQL 复制:
  9. 数据库 MYSQL操作(一)
  10. ACG图片站\python爬虫\LAMP环境
  11. Spring源码阅读(七)
  12. 白鹭引擎 - 显示对象与 HelloWord ( 绘制了一个红蓝相间的 2 x 2 格子 )
  13. jboss-as- 7.1.1.Final配置jndi数据源
  14. Win10 取消桌面快捷键图标
  15. Mysql错误:Duplicate entry &#39;127&#39; for key &#39;PRIMARY&#39;的解决方法
  16. R 语言安装问题集锦
  17. java代码----大二上机考试
  18. HTML&amp;CSS笔记001
  19. 对类中的成员函数的定义和声明最后添加一个const是什么意思?
  20. 移动端toast 提示,HTML css 全屏垂直水平居中

热门文章

  1. java反射的使用场合和作用、及其优缺点
  2. spark算子之Aggregate
  3. 配置 Linux 静态网卡 &amp; 远程连接 MySQL 问题
  4. 关于SQL中 =:的含义
  5. mysql-一行分隔成多行数据
  6. PHP FILTER_SANITIZE_SPECIAL_CHARS 过滤器
  7. docker安装(4)
  8. 画山 paint
  9. linux 创建多级目录 mkdir -p
  10. 3.2 Redux TodoApp