Я читаю файл json, который содержит массив json, и пытаюсь обновить некоторые значения ключей во всех объектах массива jason и записать новый обновленный массив json в другой файл.
Файл со следующим массивом json:
[
{
"info": "old text"
"sometext": "old text",
"Id": 2,
"No": 12,
},
{
"info": "old text"
"sometext": "old text",
"Id": 68,
"No": 22,
},
{
"info": "old text"
"sometext": "old text",
"Id": 87,
"No": 15,
}
]
Я хочу обновить значения ключей info и sometext во всех объектах массива json так, чтобы вывод в новый файл с обновленным массивом json был (это мой желаемый вывод, которого я хочу добиться с помощью моего код):
[
{
"info": "new text"
"sometext": "new text",
"Id": 2,
"No": 12,
},
{
"info": "new text"
"sometext": "new text",
"Id": 68,
"No": 22,
},
{
"info": "new text"
"sometext": "new text",
"Id": 87,
"No": 15,
}
]
пока это мой код:
final String JSON_PATH = "old.json";
final String JSON_PATH1 = "new.json";
BufferedWriter bw = new BufferedWriter(new FileWriter(JSON_PATH1));
BufferedReader br = new BufferedReader(new FileReader(JSON_PATH));
JsonParser parser = new JsonParser();
JsonArray arrayObj = parser.parse(br).getAsJsonArray();
for(int i=0; i < arrayObj.size();i++) {
JsonObject burObj = arrayObj.get(i).getAsJsonObject();
String old_info = burObj.get("info").getAsString();
String old_sometext = burObj.get("sometext").getAsString();
burObj.addProperty(NewTextGen(old_info), "info");
burObj.addProperty(NewTextGen(old_sometext), "sometext");
burObj.remove(old_info);
burObj.remove(old_sometext);
Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
gson.toJson(arrayObj, new JsonWriter(bw));
}
когда я запускаю этот код, я получаю бессмысленный вывод как новых, так и старых значений
а не мой желаемый вывод.
бредовой вывод:
[
{
"info": "old text"
"sometext": "old text",
"info": "new text"
"sometext": "new text",
"Id": 2,
"No": 12,
},
{
"info": "old text"
"sometext": "old text",
"info": "new text"
"sometext": "new text",
"Id": 68,
"No": 22,
},
{
"info": "old text"
"sometext": "old text",
"info": "new text"
"sometext": "new text",
"Id": 87,
"No": 15,
},
{
"info": "old text"
"sometext": "old text",
"info": "new text"
"sometext": "new text",
}
]
обратите внимание, что старый текст и новый текст - просто фиктивный текст, а не фактический текст, то же самое с фиктивным методом NewTextGen (), так как я только пытаюсь узнать, что я делаю неправильно в моем коде
UPDATE
Решил мою проблему, проверь ответы