如何解析以下 JSON 响应?

How to parse below JSON response?

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

我要解析上面的json.

提前致谢

将您的数据更改为 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
  }

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

然后就用Gson来序列化-反序列化json.

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

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

非常简单的用法:

Klaxon().parse<yourClass>(yourJsonAsString)

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

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

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

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

举个例子:

public Car fromJson(){

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

}

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

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

然后使用JsonArray解析数据