1.JSON数据与List集合之间的正确转换
@Test
public void testJsonObjectCastToList() {
// 0.集合测试数据准备
List<PersonInfo> personInfos = new ArrayList<>();
PersonInfo personInfoOne =
new PersonInfo("小明", 18, 178.89);
PersonInfo personInfoTwo =
new PersonInfo("小红", 18, 165.56);
personInfos.add(personInfoOne);
personInfos.add(personInfoTwo);
// 1.JSON数据与List集合之间的正确转换
// 1.1 将List集合转为JSON数据字符串
String str = JSON.toJSONString(personInfos);
System.out.println(str);
// [{"age":18,"height":178.89,"name":"小明"},{"age":18,"height":165.56,"name":"小红"}]
// 1.2 将JSON数据转为list集合
List<PersonInfo> personInfoList;
try {
personInfoList = JSON.parseArray(str, PersonInfo.class);
} catch (Exception e) {
log.error("JSON解析异常:{}", ExceptionUtils.getStackTrace(e));
personInfoList = new ArrayList<>();
}
System.out.println(personInfoList);
// [PersonInfo(name=小明, age=18, height=178.89), PersonInfo(name=小红, age=18, height=165.56)]
/**
* 2.以下代码执行时,会报异常:
* com.alibaba.fastjson.JSONException: syntax error, expect {,
* actual error, pos 1, fastjson-version 1.2.62
*/
// // 2.1 将集合直接转为字符串
// String strMethod = String.valueOf(personInfos);
// System.out.println(strMethod);
// [PersonInfo(name=小明, age=18, height=178.89), PersonInfo(name=小红, age=18, height=165.56)]
// // 2.2 将JSON数据转为list集合
// List<PersonInfo> personInfoListStr = JSON.parseArray(strMethod, PersonInfo.class);
// System.out.println(personInfoListStr);
}