JAVA 接收JSON数据,并进行转换处理
在日常业务中经常需要与外部系统交互处理数据,在此文章中记录一下我在项目中处理json数据流程。
第一种以实体类处理
以文档中的数据结构构建实体类,使字段与需要接收转换的JSON字段变量名尽量保持一致,如果不一致,则会获取不到变量的数值,也可以使用 @JsonProperty(value = “json变量名”)标注在字段上,通过注解来进行转换。
controller方法接收json数据
(@RequestBody XXX xxx)
将实体类转换成json字符串
将json字符串转换成对象或集合(需要根据自己接收到的参数选择转换的类型),然后获取字段调用对象的get方法即可。 String jsonString =接收到的json字符串
XXX xxx= JSONArray.parseObject(jsonString, XXX.class);//转换成对象
Listxxxs = JSONObject.parseArray(jsonString, XXX .class)//转换成集合
ChangeMeterRecord changeMeterRecord = JSONObject.parseObject(json, ChangeMeterRecord.class);
SwitchingTable switchingTable = JSONObject.parseObject(json2, SwitchingTable.class);
我是操作的集合
Map data = new HashMap(); data.put("newManufacturer",changeMeterRecord.getNewManufacturer()); data.put("newTableName",changeMeterRecord.getNewTableName()); data.put("newModel",changeMeterRecord.getNewModel()); data.put("newMeterNum",changeMeterRecord.getNewMeterNum()); data.put("newDirection",changeMeterRecord.getNewDirection()); data.put("newMeterOrigin",changeMeterRecord.getNewMeterOrigin()); data.put("newMeterFlow",changeMeterRecord.getNewMeterFlow()); data.put("newDigits",changeMeterRecord.getNewDigits()); data.put("newCardSubnumber",changeMeterRecord.getNewCardSubnumber()); data.put("changeReason",changeMeterRecord.getChangeReason()); data.put("originalReading",changeMeterRecord.getOriginalReading()); data.put("newReading",changeMeterRecord.getNewReading()); data.put("repairGasCost",changeMeterRecord.getRepairGasCost()); data.put("newSeal",changeMeterRecord.getNewSeal()); data.put("remark",changeMeterRecord.getRemark()); data.put("changedate", formatter.format(date));
第二种以JSONObject处理
接收数据
@RequestMapping(value = "/insertOutside",method=RequestMethod.POST)
public void insertOutside(@RequestBody JSONObject jsonObject)
JSONObject test = jsonObject.getJSONObject("对象名");//转换成对象
//从该对象中获取String变量
String string1 = test.getString("字段名");
//从该对象中获取Integer变量
Integer integer1= test.getInteger("字段名");
//从该对象中获取集合
JSONArray dataResultList = test.getJSONArray("集合名称");
//或还有其他格式
来源地址:https://blog.csdn.net/m0_60741007/article/details/130600330
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341