2016-01-21 88 views
2

我需要从JSON文件中读取JsonElements。我正在使用org.json.simple罐子。从Json文件中读取JsonElement?

这里是我的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?例如:

编辑

我想要遍历所有JsonElementsJsonAray。在我给定的Json中,我确实有submission IDsubmission_ID。关键是在某些时候是动态的,我需要阅读它,并想在其上应用一些regex

+0

退房[这](HTTP:/ /stackoverflow.com/questions/16574482/decoding-json-string-in-java)发布它可能会有所帮助。 – NAIT

+0

[如何解析Java中的JSON]可能的重复(http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java) –

+0

其实他们正在阅读JsonObject的'.get(“ “)'功能。我想迭代它到每个数组的每个JsonElement –

回答

0

你应该使用杰克逊?它提供了很好的实用工具来解析JSON文件。

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

运行代码。试试吧

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")); 
       } 
     } 
    } 

我text.json

[{ 
"Submission ID": "9938306", 
"Lat": "17.447191666666665", 
"Long": "78.38849" 
}, 
{ 
    "Submission ID": "9938306", 
"Lat": "17.447191666666665", 
"Long": "78.38849" 
}] 
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")); 
     } 
    } 

注:没有编译