如何在Java中解析未知的JSON结构

时间:2013-10-28 08:27:42

标签: java android json

我有这段代码:

JSONArray data = object.getJSONArray("Test");

for (int i = 0; i < data.length(); i++)
{
    JSONObject dataObject = data.getJSONObject(i);
    etc ...

我不知道在运行时之前我将在dataObject中拥有什么。是否有可能以某种方式循环键?

我认为这可能有用,正如我在其他Stackoverflow文章中提到的那样:

for (String key : dataObject.keys())

但是我收到一条错误,上面写着“只能迭代数组或java.lang.Iterable的实例”

有谁知道怎么做?

4 个答案:

答案 0 :(得分:4)

要检索对象的键,这可能有效:

Iterator<?> iterator = object.keys();
while (iterator.hasNext()) {
   String key = (String)iterator.next();
   //do what you want with the key.                 
}  

答案 1 :(得分:0)

JSONArray names()
Returns an array containing the string names in this object.

http://developer.android.com/reference/org/json/JSONObject.html

答案 2 :(得分:0)

我希望这会有所帮助

Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;

请参阅以下链接

http://json.org/java/

http://www.tutorialspoint.com/json/json_java_example.htm

答案 3 :(得分:0)

我猜

  

Iterator keys = json.keys();

这将为您提供json对象的键作为java iterator

How can I iterate JSONObject to get individual items

这将为您提供以迭代方式获取键和值的想法,并帮助您实现您的需求