zoukankan      html  css  js  c++  java
  • 前端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 这样就可以把所有字段都取出来了

    项目维护遇到的一个有趣方法,记录下来。

  • 相关阅读:
    .NET 分布式自增Id组件(解决自动分配机器Id、时间回拨问题)
    简洁实用Socket框架DotNettySocket
    Colder框架硬核更新(Sharding+IOC)
    .NET Core开源快速开发框架Colder发布 (NET Core2.1+AdminLTE版)
    .NET开源快速开发框架Colder发布 (NET452+AdminLTE版)
    .NET 跨平台RPC框架DotNettyRPC
    Web后台快速开发框架(.NET Core)
    Web后台快速开发框架
    EasyWcf------无需配置,无需引用,动态绑定,轻松使用
    C# .NET 0配置使用Wcf(半成品)
  • 原文地址:https://www.cnblogs.com/zq1003/p/14074101.html
Copyright © 2011-2022 走看看