在日常业务中经常需要与外部系统交互处理数据,在此文章中记录一下我在项目中处理json数据流程。
第一种以实体类处理
以文档中的数据结构构建实体类,使字段与需要接收转换的JSON字段变量名尽量保持一致,如果不一致,则会获取不到变量的数值,也可以使用 @JsonProperty(value = “json变量名”)标注在字段上,通过注解来进行转换。
controller方法接收json数据
(@RequestBody XXX xxx)
将实体类转换成json字符串
String json = JSONArray.toJSONString(xxx);
将json字符串转换成对象或集合(需要根据自己接收到的参数选择转换的类型),然后获取字段调用对象的get方法即可。
String jsonString =接收到的json字符串
XXX xxx= JSONArray.parseObject(jsonString, XXX.class);//转换成对象
List<XXX > xxxs = JSONObject.parseArray(jsonString, XXX .class)//转换成集合
第二种以JSONObject处理
接收数据
(@RequestBody JSONObject body)
将json字符串转换成对象或集合,并获取字段数值
JSONObject test = jsonObject.getJSONObject("对象名");//转换成对象
//从该对象中获取String变量
String string1 = test.getString("字段名");
//从该对象中获取Integer变量
Integer integer1= test.getInteger("字段名");
//从该对象中获取集合
JSONArray dataResultList = test.getJSONArray("集合名称");
//或还有其他格式