У меня возникли проблемы с присоединением к файлу JSON. Я могу добавить новую запись, но не вставить ее в правильное положение.Добавление записи в массив JSON с JSON-простым
Код:
public static void main(String args[]) throws Exception {
{
File file = new File("jsonFormatting.json");
if (!file.exists()) {
System.out.println("No file");
} else {
try {
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("jsonFormatting.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray jsonItemInfo = (JSONArray) jsonObject.get("itemInfo");
JSONObject newObject = new JSONObject();
newObject.put("item", new Integer(10003));
newObject.put("name", "ID10003");
StringWriter out = new StringWriter();
newObject.writeJSONString(out);
String jsonText = out.toString();
System.out.println(jsonText);
jsonItemInfo.add(newObject);
FileWriter fileToWrite = new FileWriter("jsonFormatting.json", true);
try {
fileToWrite.write(jsonItemInfo.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
fileToWrite.flush();
fileToWrite.close();
} catch (IOException | ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
JSON файл:
"sampleArray": [
"Element_0",
"Element_1"
],
"dataPoint_1": 40,
"dataPoint_2": 500,
"dataPoint_3": 650,
"itemInfo": [
{
"item": "10001",
"name": "ID10001",
},
{
"item": "10002",
"name": "ID10002",
}
]
Я хотел бы добавить следующее в "itemInfo":
{
"item": "10003",
"name": "ID10003",
}
Однако, когда я бегу мой Java кода, он добавляет это в конец файла JSON, вместо того, чтобы вставлять новую запись после оригинала 2:
[{"item":"10001","name":"ID10001"},{"item":"10002","name":"ID10002"},{"item":10003,"name":"ID10003"}]
Заранее благодарим за любые советы, которые вы можете предложить!
После дальнейших исследований, казалось бы, я не могу вставить добавление в определенном месте файл. Мне пришлось бы загрузить файл в память, выполнить изменения, а затем перестроить весь JSON и перезаписать оригинал. Может ли кто-нибудь подтвердить это? –
Один вопрос: можете ли вы подтвердить, что ваши данные json-файла совпадают с тем, что вы вставили в вопрос (раздел Json File), чем я могу разобраться в этом вопросе? – Bill
Это действительно так, как в файле, однако скобки вокруг всего кода отсутствуют {}. По какой-то причине вставка кода Stackoverflow не принимала его в блоке. –