gpt4 book ai didi

java - 解析 JSON 文件后,如何使用 json-simple 修改 JSON 文件中特定字段的值

转载 作者:行者123 更新时间:2023-12-02 05:44:35 55 4
gpt4 key购买 nike

我需要修改 json 文件中某个键的特定值,它是一个嵌套的 JSON 文件,我已经遍历到该键值对,但我无法修改该值,也不知道如何修改写回 json。

使用json-simple解析JSON

这是 JSON 文件:

{
"entity": {
"id": "ppr20193060018",
"data": {
"relationships": {
"productpresentationtolot": [
{
"id": "",
"relTo": {
"id": "",
"data": {
"attributes": {
"rmsitemid": {
"values": [
{
"source": "internal",
"locale": "en-US",
"value": "2019306"
}
]
}
}
},
"type": "lot"
}
}
]
}
},
"type": "productpresentation"
}
}

使用下面的代码阅读它:

JSONParser parser = new JSONParser();
reader = new FileReader("path.json");
JSONArray rmsArray =(JSONArray) rmsitemid.get("values");
for(Object obj2:rmsArray)
{
JSONObject tempObj1=(JSONObject)obj2;
System.out.println(tempObj1.get("value"));
}

我能够打印 value(Key) 中的内容,即 2019306,但我不知道如何将其替换为其他值,并且它也应该更改 JSON 文件中的值。

感谢任何帮助!

最佳答案

这是如何使用 simple-json 库读写的完整示例:

// read from resource file
JSONObject value;
try (Reader in = new InputStreamReader(getClass().getResourceAsStream("/simple.json"))) {
JSONParser parser = new JSONParser();
value = (JSONObject) parser.parse(in);
}
JSONObject entity = (JSONObject) value.get("entity");

// update id
entity.put("id", "manipulated");

// write to output file
try (Writer out = new FileWriter("output.json")) {
out.write(value.toJSONString());
}

JSONObject 基本上就是 Map。所以你可以把值放进去。

要再次创建 JSON 字符串,请使用 toJSONString()。在我的示例中,我创建了一个新的输出文件。不过,您也可以覆盖原始输入文件。但你必须完整地写入文件。

关于java - 解析 JSON 文件后,如何使用 json-simple 修改 JSON 文件中特定字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56109057/

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