在日常業(yè)務(wù)中經(jīng)常需要與外部系統(tǒng)交互處理數(shù)據(jù),在此文章中記錄一下我在項(xiàng)目中處理json數(shù)據(jù)流程。
第一種以實(shí)體類(lèi)處理
以文檔中的數(shù)據(jù)結(jié)構(gòu)構(gòu)建實(shí)體類(lèi),使字段與需要接收轉(zhuǎn)換的JSON字段變量名盡量保持一致,如果不一致,則會(huì)獲取不到變量的數(shù)值,也可以使用 @JsonProperty(value = “json變量名”)標(biāo)注在字段上,通過(guò)注解來(lái)進(jìn)行轉(zhuǎn)換。
controller方法接收json數(shù)據(jù)
?
(@RequestBody XXX xxx)
將實(shí)體類(lèi)轉(zhuǎn)換成json字符串
將json字符串轉(zhuǎn)換成對(duì)象或集合(需要根據(jù)自己接收到的參數(shù)選擇轉(zhuǎn)換的類(lèi)型),然后獲取字段調(diào)用對(duì)象的get方法即可。?String jsonString =接收到的json字符串
?XXX xxx= JSONArray.parseObject(jsonString, XXX.class);//轉(zhuǎn)換成對(duì)象
?List<XXX > xxxs = JSONObject.parseArray(jsonString, XXX .class)//轉(zhuǎn)換成集合
?
? ? ? ? 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處理
接收數(shù)據(jù)
@RequestMapping(value = "/insertOutside",method=RequestMethod.POST)
? ? public void insertOutside(@RequestBody JSONObject jsonObject)
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-630711.html
? JSONObject test = jsonObject.getJSONObject("對(duì)象名");//轉(zhuǎn)換成對(duì)象
? //從該對(duì)象中獲取String變量
? String string1 = test.getString("字段名");
? //從該對(duì)象中獲取Integer變量
? Integer integer1= test.getInteger("字段名");
? //從該對(duì)象中獲取集合
? JSONArray dataResultList = test.getJSONArray("集合名稱(chēng)");
? //或還有其他格式
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-630711.html
到了這里,關(guān)于JAVA 接收J(rèn)SON數(shù)據(jù),并進(jìn)行轉(zhuǎn)換處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!