Java:包含数组的JSON对象

时间:2016-12-15 17:26:55

标签: java json

我有一个Java函数,它从URL加载JSON,然后将其作为JSONObject

返回

我正在使用的功能是: json = new JSONObject(jsonString); 来自org.json.JSONObject

问题是对象中包含的任何数组都只是作为字符串返回,而不是作为数组返回。

我们也不知道所包含的JSON的格式,因此我们无法专门调用要解析的对象的属性。它必须能够处理可能存在的任何数组。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以使用Gson来解析json字符串。它干净而且容易。

对于使用Gson,您需要首先创建一个描述单个响应对象的类。

public class ResponseObject {
    public String id;
    public String name;
} 

现在您已经拥有包含对象数组的json字符串,请按如下方式解析json字符串。

Gson gson = new Gson();
ResponseObject[] objectArray = gson.fromJson(jsonString, ResponseObject[].class); 

简单!

答案 1 :(得分:0)

如果您仍然需要 JSONObject ,那么检索数组的方式实际上是..

JSONObject jsonObject = new JSONObject(jsonString);
JSONArray hobbies = jsonObject.getJSONArray("hobbies");

那样

hobbies.getString(0)
hobbies.getString(1)
etc..

JSONArray 本身有 .get() getDouble() getInt()等。