【发布时间】:2025-12-23 11:35:11
【问题描述】:
我有一个 Java 问题,特别是在使用 JSON 简单库时。我在这里找到了一个代码,它们确实在 json 文件的父节点级别工作,但在我的情况下,我读取了一个 json 文件,其父节点下有子节点。
代码链接:How to read json file into java with simple JSON library
在 DB 语言中:我有一个包含一些表的数据库。现在,我只能读取“从表中选择 *”,但我想从中读取列(或属性)。
结构(原始数据 json):
{
"PARENT1":
{
"child_attr1":"0.00","child_attr2":"0.30"
},
"PARENT2":
{
"child_attr1":"0.10","child_attr2":"0.12"
},
"PARENT3":
{
"child_attr1":"0.03","child_attr2":"0.45"
}
}
代码:
public static HttpResponse http(String url, String body) {
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
HttpPost request = new HttpPost(url);
StringEntity params = new StringEntity(body);
request.addHeader("content-type", "application/json");
request.setEntity(params);
HttpResponse result = httpClient.execute(request);
String json_content = EntityUtils.toString(result.getEntity(), "UTF-8");
//System.out.println(json_content);
try {
JSONParser parser = new JSONParser();
Object resultObject = parser.parse(json_content);
if (resultObject instanceof JSONArray) {
JSONArray array=(JSONArray)resultObject;
for (Object object : array) {
JSONObject obj =(JSONObject)object;
System.out.println(obj.get("Parent"));
System.out.println(obj.get("Child"));
//System.out.println("case1");
}
} else if (resultObject instanceof JSONObject) {
JSONObject obj =(JSONObject)resultObject;
System.out.println(obj.get("PARENT2"));
//System.out.println("case2");
//THIS KNOT WORKS BUT IT GIVES ME ALL VALUES OF THE ATTRIBUTES
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
【问题讨论】:
-
我懂你的英语。我不明白你的问题,因为你提到了一些表和一些代码,但你没有包括你如何使用这些代码、这些表的定义以及你在尝试时遇到的错误
-
我编辑了我的问题。我希望这会更好,感谢您的帮助!
-
又是什么问题?你也可以提供 JSON 结构吗?
-
你的问题还是比较模糊。您能否向我们提供 JSON 数据的结构?并告诉我们您要读取哪些节点。从表中读取属性是什么意思?这是您的 JSON 问题的一部分,还是一个单独的问题(在这种情况下,您应该为其创建一个单独的问题)。
标签: java json json-simple