【问题标题】:How to parse below JSON response?如何解析下面的 JSON 响应?
【发布时间】:2019-04-15 12:59:16
【问题描述】:
{
    "status": true,
    "data": {
        "1": "Business People",
        "2": "Actors",
        "3": "Musicians",
        "4": "Sports People",
        "5": "Artists",
        "6": "Politicians"
    },
    "message": "Get data successfully."
}

我要解析上面的json。

提前致谢

【问题讨论】:

标签: android json parsing response


【解决方案1】:

我认为将数字作为对象中的键不是一个好习惯, 我建议你使用 JsonArray

{
 "status":true,
 "message":"Get data successfully.",
 "data":[ "Business People", "Actors", "Musicians", "Sports People", "Artists" 
 ,"Politicians"]
}

然后使用JsonArray解析数据

【讨论】:

    【解决方案2】:

    您可以使用 handy service 生成您的 java 模型。

    那就用Gson来序列化-反序列化json吧。

    但是,在您的情况下,“1”、“2”、“3”等可能是固定参数或动态地图。

    【讨论】:

      【解决方案3】:

      将您的数据更改为 JSONArray 作为一组 JSONObject 以执行动态作业

       JSONObject json = new JSONObject(your_string)
       JSONArray  data = json.getJsonArray("data");
      
       for(int i = 0;i<data.length();i++)
        {
         JSONObject item = data.getJSONObject(i);
         String itemString = item.getString(Integer.parseInt(i+1));
       /// do whatever you want ie : add itemString to a list
        }
      

      【讨论】:

      • 实际上响应是动态的。我想像数组一样解析“数据”对象
      • 所以首先必须创建一个jsonarray作为数据
      【解决方案4】:

      我建议使用 Klaxon 来解析 JSON https://github.com/cbeust/klaxon

      非常简单的用法:

      Klaxon().parse<yourClass>(yourJsonAsString)
      

      其中 yourClass 是一个满足您解析需求的数据类。请参阅 Klaxon 文档以了解您的每个需求。如果您需要帮助,请发表评论。

      【讨论】:

        【解决方案5】:

        访问这个网站https://quicktype.io/它将帮助您创建java模型。

        现在使用 GSON 序列化和反序列化 JSON。

        添加以下依赖 实现 'com.google.code.gson:gson:2.8.5'

        这是一个例子:

        公共汽车 fromJson(){

        String json = "{\"brand\":\"Jeep\", \"doors\": 3}";
        Gson gson = new Gson();
        Car car = gson.fromJson(json, Car.class);
        return car;
        

        }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-03-27
          • 1970-01-01
          • 2015-05-25
          • 1970-01-01
          • 2013-03-27
          相关资源
          最近更新 更多