繁体   English   中英

Java:包含数组的JSON对象

[英]Java: JSON object containing arrays

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

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

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

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

我怎样才能解决这个问题?

您可以使用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); 

简单!

如果仍然需要JSONObject ,则实际上是检索数组的方式。

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

以便

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM