1、问题说明
由于使用DataTable进行数据渲染,调用接口获取的Json数据中对象的属性不是原来的顺序了,原因是在进行Json格式化的时候,使用JsonUntils进行转json,内部使用的map是无序的。
需要的数据格式示例:
[
{
"userName":"lucy",
"sex":"男",
"age":"18"
},
{
"userName":"lucy",
"sex":"男",
"age":"18"
}
]
进行Json格式化后的数据示例:
[
{
"sex":"男",
"userName":"lucy",
"age":"18"
},
{
"sex":"男",
"userName":"lucy",
"age":"18"
}
]
因此这样的数据肯定是不行的。
2、问题解决
既然知道原因出在哪里了,就针对性的解决就行。由于项目中很多地方已经在使用原来的JsonUtils工具类,在不影响项目的前提下,我自己手动修改自己的数据。
将原来待Json格式化的数据重新处理一下:
List<UserVO> userList= userService.getUsers();
List<Map<String,String>> resultList = new ArrayList<>();
for(User user:userList){
Map<String,String> map = new LinkedHashMap<>();
map.put("userName",situationVO.getUserName());
map.put("sex",situationVO.getSex());
map.put("age",situationVO.getAge());
resultList.add(map);
}
String resulData = JSONUtils.toJSONString(resultList);
return resultData;
大致思路如上。