我有一个Java函数,它从URL加载JSON,然后将其作为JSONObject
返回我正在使用的功能是:
json = new JSONObject(jsonString);
来自org.json.JSONObject
问题是对象中包含的任何数组都只是作为字符串返回,而不是作为数组返回。
我们也不知道所包含的JSON的格式,因此我们无法专门调用要解析的对象的属性。它必须能够处理可能存在的任何数组。
我该如何解决这个问题?
答案 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()等。