如何解析下面的JSON响应?

时间:2019-04-15 12:59:17

标签: android json parsing response

{
    "status": true,
    "data": {
        "1": "Business People",
        "2": "Actors",
        "3": "Musicians",
        "4": "Sports People",
        "5": "Artists",
        "6": "Politicians"
    },
    "message": "Get data successfully."
}

我想解析上面的json。

预先感谢

5 个答案:

答案 0 :(得分:1)

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

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

然后使用JsonArray解析数据

答案 1 :(得分:0)

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

 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
  }

答案 2 :(得分:0)

您可以使用handy service来生成Java模型。

然后只需使用Gson对json进行序列化-反序列化即可。

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

答案 3 :(得分:0)

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

非常容易使用:

Klaxon().parse<yourClass>(yourJsonAsString)

其中,yourClass是具有解析需求的数据类。请参阅Klaxon文档,以了解您的每种需求。评论是否需要帮助。

答案 4 :(得分:0)

访问此网站https://quicktype.io/,它将帮助您创建Java模型。

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

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

以下是示例:

Json()的公共车{

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

}