Java 如何在打包JSON文件后使用JSON simple修改JSON文件中特定字段的值

Java 如何在打包JSON文件后使用JSON simple修改JSON文件中特定字段的值,java,json,json-simple,Java,Json,Json Simple,我需要修改json文件中某个键的特定值,它是一个嵌套的json文件,我已经遍历了该键-值对,但我无法修改该值,也不知道如何写回json 使用json simple解析json 这是JSON文件: { "entity": { "id": "ppr20193060018", "data": { "relationships": { "productpresentationtolot": [ { "id": "

我需要修改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"));
}
我能够打印值(键)中的内容,即2019306,但我不知道如何用其他值替换它,它也应该更改JSON文件中的值


感谢您的帮助

下面是一个完整的exmaple如何使用简单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基本上是映射。所以你可以把值放进去

要再次创建JSON字符串,请使用
toJSONString()

在我的示例中,我创建了一个新的输出文件。不过,您也可以覆盖原始输入文件。但是您必须完整地编写文件。

下面是一个完整的exmaple如何使用简单的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基本上是映射。所以你可以把值放进去

要再次创建JSON字符串,请使用
toJSONString()

在我的示例中,我创建了一个新的输出文件。不过,您也可以覆盖原始输入文件。但是您必须完整地编写文件。

您可以使用Jackson framework。首先,必须将Json字符串转换为对象。获得对象后,可以修改任何需要的内容。使用
jsonObject.put(key,value)
将旧值替换为所需的值。之后,将对象转换回字符串,并将字符串写入可以使用Jackson framework的文件。首先,必须将Json字符串转换为对象。获得对象后,可以修改任何需要的内容。使用
jsonObject.put(key,value)
将旧值替换为所需的值。之后,将对象转换回字符串并将字符串写入文件这段代码特别是try(Writer out=new FileWriter(“output.json”){out.write(value.toJSONString());}这段代码特别是try(Writer out=new FileWriter(“output.json”){out.write(value.toJSONString());}