我需要从给定的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 ID
和submission_ID
。密钥在某些方面是动态的,我需要阅读它,并希望在其上应用一些regex
。
答案 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"));
}
}
注意:未编译