JSON工具包,常用API
Alibaba.fastJson包:
将json字符串解析成单个目标类对象
使用parseObject方法
TaskVideoDTO taskVideoDTO = JSON.parseObject(videos, TaskVideoDTO.class);
将json字符串解析成list集合
使用parseArray方法
List<TaskVideoDTO> videoDTOS = JSON.parseArray(videos, TaskVideoDTO.class);
将json字符串解析成list集合,业务场景下只能包含一个元素
List<TaskVideoDTO> videoDTOS = Collections.singletonList(JSON.parseObject(videos, TaskVideoDTO.class))
更多的是为了兼容for循环写法
但是当Json字符串包含元素超过1个的话(为list集合,或数组对象的时候)
就会报错 "illegal character ["
因为json字符串中,如果存储的是数组对象,则在最外层会用中括号括起来
总结
对于json字符串中内容:
1、为数组对象,即字符串最外层通过中括号括起来,当我们使用JSON工具包去解析的时候,需要通过parseArray方法,否则会报错。返回值为List< ? >
2、为普通对象,通过parseObject方法去解析, 返回值为 T。
当然,如果json字符串本身是普通对象,(即没有通过中括号括起来)而你返回值又想要一个List的形式(兼容),那我们可以将结果通过Collections.singletonList( )手动转换一下。