[英]Read properties of array of json objects in a json file in java
我是 java 中 JSON 数组/对象的新手。 在这里,我正在努力获得 JSON object 的属性。 我的尝试如下。
JSONParser jsonParser = new JSONParser();
try(FileReader reader = new FileReader("players.json")){
//Read JSON file
Object obj = jsonParser.parse(reader);
JSONArray playersList = (JSONArray) obj;
//Below is the one which is having compilation issues
System.out.println(playersList.get(1).getString("name"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在那里,我试图在 JSON 数组中获取第二个 object 的名称。 但是我找不到像上面那样调用 getString("name") 的方法。 因此,我非常感谢您对此的帮助。
Json文件如下。
[
{
"_id": 1,
"name": "greg",
},
{
"_id": 2,
"name": "freg gre",
}
]
您可以使用如下
JSONObject jsonObject = (JSONObject)playersList.get(1);
String name = (String) jsonObject.get("name");
JSONParser jsonParser = new JSONParser();
try(FileReader reader = new FileReader("players.json")){
Object obj = jsonParser.parse(reader);
JSONArray jsonArray = new JSONArray(obj);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
Iterator<String> keys = json.keys();
while (keys.hasNext()) {
String key = keys.next();
System.out.println("Key :" + key + " Value :" + json.get(key));
}
}
您只需要遍历数组中的每个 object 并且每个 object 都有键和值在循环中获取它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.