在Java中将新的键和值添加到json数组的末尾

问题描述

所以我有一个名为Test.json的基本JSON文件

import { upload as uploadToService} from '/api';

await uploadToService(form);

这是一个混乱的测试文件。我也有这种基本的书写方法

[{"weight":{"1-1-2020":"50.0","1-2-2020":"50.0","1-3-2020":"50.0"}}]

它首先获取文件的键和值,然后在此行中添加一个值和键:

 public void setWeight()
{
    try(FileReader reader = new FileReader("Test.json"))
    {
        JSONParser jsonParser = new JSONParser();

        Object obj = jsonParser.parse(reader);

        JSONArray jsonArray = (JSONArray) obj;

        JSONObject jsonObject = (JSONObject) jsonArray.get(0);
        JSONObject jObject = (JSONObject) jsonObject.get("weight");
        jObject.put("1-4-2020","50.0");

        JSONObject userObject = new JSONObject();
        userObject.put("weight",jObject);

        JSONArray userList = new JSONArray();
        userList.add(userObject);

        try (FileWriter file = new FileWriter("Test.json")) 
        {
            file.write(userList.toJSONString());
            file.flush();
        } 
    } 
    catch (Exception e) 
    {
        e.printstacktrace();
    }
}

这很好:

jObject.put("1-4-2020","50.0");

但是当我将行更改为此:

[{"weight":{"1-1-2020":"50.0","1-3-2020":"50.0","1-4-2020":"50.0"}}]

我的文件如下:

jObject.put("1-5-2020","50.0");

所以我的问题是:为什么会这样?以及如何确保增加的值和键始终位于数组的末尾,所以像这样:

[{"weight":{"1-5-2020":"50.0","1-1-2020":"50.0","1-4-2020":"50.0"}}]

我在Windows上的Visual Studio代码上使用json-简单库。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)