gpt4 book ai didi

java - 使用 json-simple 获取嵌套对象 - 父节点的通配符

转载 作者:行者123 更新时间:2023-11-30 03:22:38 28 4
gpt4 key购买 nike

我想检索“名称”值并将它们从 Java 中的 JSON 文件存储在 Arraylist 中。我正在使用 JSON-simple 库这是我的“file.json”的示例:

{
"111": {

"customer": {

"name": "John Do",
"Height": 5.9,
"City": "NewYork"
}

},
"222":{

"customer": {

"name": "Sean Williams",
"Height": 6,
"City": "Los Angeles"
}
}
}

ID 号“111”和“222”对我的程序来说并不重要,它们是随机生成的,因此我无法使用 jObject.get() 因为这些值会不断变化。我尝试搜索父节点的通配符,然后转到子节点customer,然后name,但没有找到这样的东西。

这是迄今为止我的代码:

import java.io.*;
import java.util.ArrayList;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class npTest {

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

try {
JSONParser jParser = new JSONParser();
JSONObject jObject = (JSONObject) jParser.parse(new FileReader("file.json"));

//Notes

} catch (FileNotFoundException e) {
System.out.print("File not found!");
}

}

}

注意:我尝试过的方法需要jObject.get("id")。我还注意到我无法将 JSONObject 存储在另一个 JSONObject 中,例如: JSONObject ParentObj = new JSONObject(jObject.get("111"));

最佳答案

您可以使用 keySet() 方法遍历 JSONObject 中的键。然后找出您的“客户”并获取他们的名字。

JSONParser jParser = new JSONParser();
JSONObject jObject = (JSONObject) jParser.parse(new FileReader("c:\\file.json"));

for(Object key : jObject.keySet()) {
JSONObject customerWrapper = (JSONObject)jObject.get(key);
JSONObject customer = (JSONObject)customerWrapper.get("customer");
System.out.println(customer.get("name"));
}

关于java - 使用 json-simple 获取嵌套对象 - 父节点的通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30986012/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com