gpt4 book ai didi

java - java解析json文件内容

转载 作者:行者123 更新时间:2023-12-01 10:08:52 25 4
gpt4 key购买 nike

我有一个 json 文件,其中包含以下 json 数据。

[{"id":1025,
"key":"SVS",
"prj_name":"SVS",
"prj_scope":"PR8",
"prj_qualifier":"WW",
"date":"2016-03-29T06:00:26-0400",
"creationDate":"2013-04-12T09:03:35-0400",
"prj_lname":"SVS",
"csr":[{"key":"test_success","test_output":85.3,"org_val":"78.3%"}]}]

我想读取java中的test_output值。我尝试了一些 json-simple api。下面是我写的代码。

StringBuffer sbf = new StringBuffer();
FileReader fileReader = new FileReader("C:/Users/java_backups/Downloads/output.json");
BufferedReader br = new BufferedReader(fileReader);
String line="";
while ((line = br.readLine()) != null) {
sbf.append(line);
}
System.out.println(sbf.toString());
JSONParser jsonParser = new JSONParser();
JSONArray jsonArray= (JSONArray) jsonParser.parse(sbf.toString());

jsonArray 的大小只有一个。我不知道如何从 json 字符串读取 test_output 值。

最佳答案

为了简单起见,使用 Jackson:

public class Test {

private static final String JSON = "[{\"id\":1025,\"key\":\"SVS\",\"prj_name\":\"SVS\",\"prj_scope\":\"PR8\",\"prj_qualifier\":\"WW\",\"date\":\"2016-03-29T06:00:26-0400\",\"creationDate\":\"2013-04-12T09:03:35-0400\",\"prj_lname\":\"SVS\",\"csr\":[{\"key\":\"test_success\",\"test_output\":85.3,\"org_val\":\"78.3%\"}]}]";

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

ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(JSON);
System.out.println(actualObj.findValue("test_output"));
}

}

依赖关系:

    <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
</dependency>

如果每个 JsonObject 中只有 1 个具有给定名称的输出,这就能解决问题。只需迭代 JsonArray 并找到每个 JsonObject 的值即可。如果您的数组始终只有 1 个元素,则只需忽略迭代部分并像上面那样使用它即可。

关于java - java解析json文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289156/

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