gpt4 book ai didi

java - 循环遍历 json 文件,将键值附加到列表

转载 作者:行者123 更新时间:2023-12-02 11:16:02 29 4
gpt4 key购买 nike

我正在尝试循环遍历 JSON 文件并将每次附加到patentList。到目前为止,我相信我已经完成了最困难的部分,但是最简单的部分似乎需要花费很多时间,即将 values 附加到 patentList 中。我的 getJsonFile 方法获取 JSON 文件的路径。 JSON 文件的格式如下。我能够打印 jsonArray 所以我知道我到目前为止还不错,但在那之后就迷失了。

Json 文件。

[{"patient":1},{"patient":2},{"patient":3},{"patient":4},{"patient":5},{"patient":6},{"patient":7},{"patient":8},{"patient":9}]

getJsonFile 方法。

private List<Integer> getJsonFile(String path)
{
List<Integer> patientList = new ArrayList<>();

try (FileReader reader = new FileReader(path))
{
JSONParser jsonParser = new JSONParser();

JSONArray jsonArray = (JSONArray)jsonParser.parse(reader);
System.out.println(jsonArray);


// Update patientList
for (int i = 0; i < jsonArray.size(); i++ )
{

patientList.add(jsonArray(i));
}
}
catch(IOException | ParseException | NullPointerException e)
{
e.printStackTrace();
}

return patientList;
}

最佳答案

您的 JSONArray 包含对象:{"病人":1}

所以你不能添加 patentList.add(jsonArray(i));

您必须访问该对象内的 int 值:

JSONObject patient = jsonArray.getJsonObject(i);
patientList.add(patient.getInt("patient");

编辑

嗯。您使用的 simple-json 库功能相当有限并且已经过时。在这种情况下,您必须自己转换数据:

JSONObject patient = (JSONObject)jsonArray.get(i);
patientList.add((Integer)patient.get("patient");

我建议您删除此库并使用 Java 现有的 JSON 功能。如果您想要更多高级功能,Jackson/GSon 是可以使用的库。

关于java - 循环遍历 json 文件,将键值附加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283648/

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