从Json文件中读取JsonElement?

时间:2016-01-21 11:29:28

标签: java arrays json org.json

我需要从给定的JsonElements文件中读取JSON。我正在使用org.json.simple jar。

以下是我的json示例:

[{
 "Submission ID": "9938306",
 "Lat": "17.447191666666665",
 "Long": "78.38849"
 },
 {
  "Submission ID": "9938306",
 "Lat": "17.447191666666665",
 "Long": "78.38849"
}]

我写了以下代码来阅读JsonArray,但无法弄清楚如何从中读取JsonElements

try {
      JSONParser parser = new JSONParser();
      Object obj = parser.parse(new FileReader("sampleData.json"));
      JSONArray array = (JSONArray) obj;
      Iterator iter = array.iterator();
      while (iter.hasNext()){

      }
    }

如何阅读每个JSONelements的所有JSONarray?例如:

修改

我想迭代JsonElements中的所有JsonAray。在我给定的Json中,我确实有submission IDsubmission_ID。密钥在某些方面是动态的,我需要阅读它,并希望在其上应用一些regex

4 个答案:

答案 0 :(得分:3)

运行代码。试试吧

[[[], [], []], [[], [1], []], [[], [], []]]

my text.json

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

    public class Test {

        public static void main(String[] args) throws FileNotFoundException, IOException, ParseException {

             JSONParser parser = new JSONParser();
              Object obj = parser.parse(new FileReader("/home/stpl/NIKHIL/text.json"));
              JSONArray array = (JSONArray) obj;
              for(int i = 0; i < array.size(); i++)
              {
                 JSONObject objects = (JSONObject)array.get(i);
                 System.out.println(objects.get("Submission ID")+" "+objects.get("Lat")+" "+objects.get("Long"));
              }   
        }
    } 

答案 1 :(得分:0)

你应该使用杰克逊?这提供了很好的实用程序来解析JSON文件。

答案 2 :(得分:0)

您可以尝试以下代码:

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("d://sample.json"));
JSONArray array = (JSONArray) obj;
Iterator iter = array.iterator();
while (iter.hasNext()) {
    JSONObject json = (JSONObject) iter.next();
    Iterator<String> keys = json.keySet().iterator();
    while (keys.hasNext()) {
        String key = keys.next();
        System.out.println("Key :" + key + "  Value :" + json.get(key));
    }
}

这将迭代给定JSON的每个键和值。

答案 3 :(得分:0)

请尝试以下代码,

try {
      JSONParser parser = new JSONParser();
      Object obj = parser.parse(new FileReader("sampleData.json"));
      JSONArray array = (JSONArray) obj;
      for(int i=0;i<array.length();i++){
          JSONObject obj=array.getJSONObject(i);
         System.out.println(obj.get("Long"));
      }
    } 

注意:未编译