如何在运行时从Java接口向json数组添加元素

如何在运行时从Java接口向json数组添加元素,java,json,append,Java,Json,Append,我想在运行时从JavaGUI向JSON数组添加元素 但每次在JSON文件中创建新数组时 要输入数据,请使用Java GUI: String _itemType = txtItemType.getText(); int _itemQuantity = Integer.parseInt(txtItemQuantity.getText()); JSONWriteExample obj = new JSONWriteExample(_itemType, _itemQuantity); obj.jsonP

我想在运行时从JavaGUI向JSON数组添加元素

但每次在JSON文件中创建新数组时

要输入数据,请使用Java GUI:

String _itemType = txtItemType.getText();
int _itemQuantity = Integer.parseInt(txtItemQuantity.getText());
JSONWriteExample obj = new JSONWriteExample(_itemType, _itemQuantity);
obj.jsonParse();
JSON:

我希望输出如下:

{  
   "Items":[  
      {  
         "Item Type":"TV",
         "Quantity":3
      },
      {  
         "Item Type":"phone",
         "Quantity":3
      }
   ]
}
但每次都会创建新阵列,如下所示:

{  
   "Items":[  
      {  
         "Item Type":"TV",
         "Quantity":3
      }
   ]
}{  
   "Items":[  
      {  
         "Item Type":"phone",
         "Quantity":3
      }
   ]
}

正如@fabian在评论中提到的,您应该首先解析文件内容,修改并覆盖文件。以下是如何实现该目标的示例代码:

首先,我不知道您使用的是什么json库,但我强烈建议您使用以下内容:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
json文件如下所示:

{
  "items": [
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "phone",
      "quantity": 3
    }
  ]
}

正如@fabian在评论中提到的,您应该首先解析文件内容,修改并覆盖文件。以下是如何实现该目标的示例代码:

首先,我不知道您使用的是什么json库,但我强烈建议您使用以下内容:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
json文件如下所示:

{
  "items": [
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "phone",
      "quantity": 3
    }
  ]
}
您只需将json对象附加到文本文件的末尾。如果要解决此问题,您需要读取文件内容,修改它并覆盖整个文件(除非您想确定如何覆盖文件末尾的部分以实现此结果,这更复杂,更难维护)。您只需将json对象附加到文本文件的末尾。如果要解决此问题,您需要读取文件内容,修改它并覆盖整个文件(除非您想确定如何覆盖文件末尾的部分以实现此结果,这更复杂,更难维护)。
{
  "items": [
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "TV",
      "quantity": 3
    },
    {
      "type": "phone",
      "quantity": 3
    }
  ]
}