前端Json數據,后台String接收,如何解析


 這幾天遇到一個任務,前端傳來一串json,后台原有是用string接受

例如這樣:

[{"carModelCode":"9657","purchaseCount":1,"bidTypeArr":[1,3,10,11,12],"imgReferNum":"9G444","categoryCode":"6G919G444AA","categoryName":"后氧傳感器","userID":216059,"pictures":[{"pictureID":5324788,"url":"http://s1.haoqipei.com/buy_pic/82/d49048b4960d0a9b","type":3,"resourceID":1021000721,"uid":1606878452474,"status":"success"}],"bidType":1,"imgUrl":"http://img2.nanxinwang.com/ds/resources/app/ford/v1/CTA3/L02070.png","nLogoCode":"8","vinCode":"LVSHBFAF1BF212329","referencePrice":0,"userPurchaseID":1021000721,"ycOeCode":"6G919G444AA","carMVersion":"2019","oeCode":"6G919G444AA","isTax":1,"groupNo":"1029200425","bidSum":0,"purchaseDesc":"12(國內原廠,國內品牌,國外原廠,國際品牌,其他)","isDefault":true,"imgs":"[null]","categoryDesc":"國內原廠,國內品牌,國外原廠,國外品牌,其他"}]

后台接受

String categorys

 

 

 

 

 

 可以看出,這是一個json里面包含了數組。

解決:

1 從我健哥師父的原來代碼解析來看,他是這樣解決的。

JSONArray ary = JSONArray.fromObject(categorys);

 

 整個json轉換成jsonArray

 

通過for循環,循環取出你要取得值,放入到一個JSONObject。

 

 

2  寫一個方法,將jsonobject的鍵值對取出來

private Object getFromJson(JSONObject jsonObject,String key){
if(jsonObject.containsKey(key)){
return jsonObject.get(key);
}
return null;
}

 

 

3  將需要的字段通過  我們上一個寫的方法 getFromJson方法 

String updatePurchaseDesc = Optional.ofNullable(getFromJson(jsonObject,"purchaseDesc")).orElse("").toString();

 

 

4 但是發現 pictures 字段 是json數組里面的 有一個json數組  只能再次循環放入

JSONArray pictures = JSONArray.fromObject(Optional.ofNullable(getFromJson(jsonObject, "pictures")).orElse(""));

 

 5 依葫蘆畫瓢

 

 6 這樣就可以把所有字段都取出來了

 

項目維護遇到的一個有趣方法,記錄下來。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM