如何在java中向json文件中添加数据?

如何在java中向json文件中添加数据?,java,json,Java,Json,我想在现有json文件中添加数据 这是我的代码: JsonWriterWithGui(){ if(ae.getSource() == btn_submit){ String lname = (String)lbl_name.getText().toString(); String ladd = (String)lbl_add.getText().toString(); String lcontact

我想在现有json文件中添加数据

这是我的代码:

    JsonWriterWithGui(){
        if(ae.getSource() == btn_submit){

            String lname = (String)lbl_name.getText().toString();
            String ladd = (String)lbl_add.getText().toString();
            String lcontact = (String)lbl_contact.getText().toString();

            FileWriter jsonFileWriter = new FileWriter( "E:\\"+tsave+".json");

            jsonFileWriter.write(jsonObject.toJSONString());
            jsonFileWriter.flush();
            jsonFileWriter.close();

此代码已在运行。但是我正在尝试更新一个已经存在的json文件。

这是一个猜测,因为问题并不完全清楚,但是如果您发现您的写操作正在覆盖而不是附加,请尝试更改这一行:

FileWriter jsonFileWriter = new FileWriter( "E:\\"+tsave+".json");
……为此:

FileWriter jsonFileWriter = new FileWriter("E:\\"+tsave+".json", true);

您可以看到,
FileWriter
FileOutputStream
支持,它接受一个布尔参数,表示是否应该追加新内容。默认情况下,此布尔值为
false
,因此如果要追加,则需要明确说明。

当您说“在现有json文件中添加数据”时,您的意思是什么?您是否试图附加到文件的末尾或编辑文件中现有的JSON数据?请查看@ATG yes im试图附加到末尾,那么实际出了什么问题?读入文件,将其解析为列表和映射,适当修改列表/映射“树”,将树序列化回JSON字符串(或字节数组),将字符串写回文件。简单地在JSON字符串的末尾添加内容来“修改”JSON字符串是无效的。至少必须重写原始JSON的最后一个字节。这可能是真的,但到目前为止,我们所知道的是,在文件末尾追加一个问题,这就是我所能提供的全部帮助。我并没有对文件中数据的性质做出任何假设。“我想在一个现有的json文件中添加数据…”不过,评论中并没有这么说。如果你非常确定自己了解问题所在,为什么不编辑问题以明确问题?哪种评论?OP只说了“是的,我想在结尾加上”。但是a)他显然不知道自己在做什么,b)他没有表示要附加到文件的末尾,而不是现有JSON的末尾。你叫他做些愚蠢无用的事,根本没有提高他的知识。