【发布时间】:2019-07-11 20:01:41
【问题描述】:
我想在运行时从 Java GUI 将元素添加到 JSON 数组
但每次在 JSON 文件中创建新数组时
Java GUI 输入数据:
String _itemType = txtItemType.getText();
int _itemQuantity = Integer.parseInt(txtItemQuantity.getText());
JSONWriteExample obj = new JSONWriteExample(_itemType, _itemQuantity);
obj.jsonParse();
JSON:
public JSONWriteExample(String type, int number) {
this.type = type;
this.quantity = number;
}
public void jsonParse() throws IOException {
JSONObject jo = new JSONObject();
Map m = new LinkedHashMap(4);
JSONArray ja = new JSONArray();
m = new LinkedHashMap(2);
m.put("Item Type", type);
m.put("Quantity", quantity);
ja.add(m);
jo.put("Items", ja);
FileWriter file=new FileWriter("jsonArray.json",true);
file.append(jo.toString());
file.flush();
file.close();
}
我希望输出如下:
{
"Items":[
{
"Item Type":"TV",
"Quantity":3
},
{
"Item Type":"phone",
"Quantity":3
}
]
}
但每次都会创建新数组,例如:
{
"Items":[
{
"Item Type":"TV",
"Quantity":3
}
]
}{
"Items":[
{
"Item Type":"phone",
"Quantity":3
}
]
}
【问题讨论】:
-
你 做 只需将 json 对象附加到文本文件的末尾即可。如果你想解决这个问题,你需要读取文件的内容,修改它并覆盖整个文件(除非你想确定如何覆盖文件末尾的部分来实现这个结果,这更复杂且难以维护)。