0

我在访问另一个对象内的 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")

4

2 回答 2

1
JSONArray outArray = new JSONArray(json);
JSONObject outObject = outArray.getJSONObject(0);
JSONArray inArray = outObject.getJSONArray("dependencies");
String data = inArray.getString(0);
于 2013-06-03T19:04:36.363 回答
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>
于 2013-06-03T19:03:41.920 回答