访问对象内的JSON数组节点

时间:2013-06-03 18:58:50

标签: java arrays json tags

我在访问另一个对象中的JSON数组节点时遇到了麻烦。

我正在尝试阅读的JSON文件基本上是这样的:

[
{
  "dependencies": [ "data"
  ]
}
]

我已经到了无法使用我的代码访问标签的地步,我不知道如何。

我正在使用http://www.json.org/java/

中的JSON库

我在这个例子中使用的完整代码在这里:

    List depList;

    InputStream is = new URL(url).openStream();

    BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
    JdomParser jp = new JdomParser();
    JsonRootNode js = jp.parse(rd);

    if(js.getArrayNode(0).get(0).getArrayNode("dependencies").size() > 0){
        depList = js.getArrayNode(0).get(0).getArrayNode("dependencies");
        is.close();
        return depList;
    } else {
        return null;
    }

我正在使用的具体行是这一行:js.getArrayNode(0).get(0).getArrayNode("dependencies")

2 个答案:

答案 0 :(得分:1)

JSONArray outArray = new JSONArray(json);
JSONObject outObject = outArray.getJSONObject(0);
JSONArray inArray = outObject.getJSONArray("dependencies");
String data = inArray.getString(0);

答案 1 :(得分:0)

以下是一些可以帮助您的示例代码。这打印出“数据”。

package com.sandbox;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class Sandbox {
    public static void main(String[] args) throws JSONException {
        String input = "[\n" +
                "{\n" +
                "  \"dependencies\": [ \"data\"\n" +
                "  ]\n" +
                "}\n" +
                "]";

        JSONArray start = new JSONArray(input);
        JSONObject jsonObject = start.getJSONObject(0);
        JSONArray dependencies = jsonObject.getJSONArray("dependencies");
        String data = dependencies.getString(0);
        System.out.println(data);
    }

}

这是我的maven依赖:

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20090211</version>
    </dependency>
相关问题