如何在Java中读取多个JSON对象?

时间:2014-06-05 19:01:31

标签: java json

所以这是我的样本Json Text,

{
  "Date": [
    1545,
    "20 January 2014"
  ],
  "docText": "ABCD",
  "docSource": "",
  "docID": 99,
  "docDate": "",
  "Date": [
    1930,
    "1995/11",
    "past decade",
    "today",
    "Today"
  ],
  "docText": "JJJJJJJ\"",
  "Organization": [
    "x",
    "y",
    "z"
  ],
  "docSource": "",
  "docID": 98,
  "docDate": "",
  "Person": "xxxxxx"
}

现在我需要一个Java代码来读取此文件并显示所有docTextdocID实体。我只能检索一个实体。

这是我正在使用的代码的一部分。

JSONParser jsonParser = new JSONParser();

try {

    FileReader fileReader = new FileReader(jsonFilePath);
    JSONObject jsonObject = (JSONObject) jsonParser.parse(fileReader);

    String docid = (String) jsonObject.get("docText");
    System.out.println("DocText: " +docid);

    long members = (long) jsonObject.get("docID");
    System.out.println("docID: " + members);


    JSONArray names = (JSONArray) jsonObject.get("Organization");

    Iterator i = names.iterator();

    while (i.hasNext()) {

        System.out.println("Organization: "+i.next());

我真的很需要这个工作!谢谢

2 个答案:

答案 0 :(得分:1)

JSON文件具有重复的键,因此您可能无法使用标准解析器全部读取它们。

来自http://www.ietf.org/rfc/rfc4627.txt

  

对象结构表示为围绕零个或多个名称/值对(或成员)的一对花括号。名称是一个字符串。每个名称后面都有一个冒号,将名称与值分开。单个逗号将值与以下名称分隔开。 对象中的名称应该是唯一的。

相反,我希望每个实体都是数组中的单独对象。

答案 1 :(得分:0)

AFAIK没有选项可以在单个get ...

中从JSON对象中获取多个值