【问题标题】:How to create JSON file from java without duplicating element?如何在不复制元素的情况下从 java 创建 JSON 文件?
【发布时间】:2020-01-05 22:54:53
【问题描述】:

我正在尝试制作一个基于服务器-客户端套接字通信的简单字典程序。我正在尝试将用户单词和含义输入保存为 JSON 文件(这是稍后搜索的字典数据),但是当我添加查询时,它最终会出现重复的 JSON 对象

例如,如果我添加happy,然后添加weather 和hello,则写入JSON 文件的结果是 如下所示

{"hello":"greeting"}{"happy":"joy","hello":"greeting"} 
{"happy":"joy","weather":"cold","hello":"greeting"}` 

而不是得到 {"hello":"greeting"}{"happy":"joy"}{"weather":"cold"} 如我所愿

我该如何解决这个问题?

我的那个函数的代码是

case "add":{
FileWriter dictionaryWriter = new FileWriter("dictionary.json",true);

//split command again into 2 part now using delimiter ","
String break2[] = msgBreak[1].split(",");
String word = break2[0];
String meaning = break2[1];

dictionary.put(word, meaning);
System.out.println("Writing... " + word+":"+meaning); 
dictionaryWriter.write(dictionary.toString());
//flush remain byte
dictionaryWriter.flush();
//close writer
dictionaryWriter.close();

break;}

此函数与其他字典函数处于 while(true) 循环中

我试图删除附加文件部分,但是当我删除 (,true) 部分时,重复错误停止了,但是每当我获得新连接时,都会创建新的字典文件,而不是保存所有数据。

如果有人能帮我解决这个问题,我将不胜感激! 提前谢谢你。

【问题讨论】:

  • 使用 hashmap 或 arraymap .. 它将替换您以前的数据。

标签: java json duplicates


【解决方案1】:

您可以尝试每次都创建一个新字典,而不是使用现有的字典

Map<String, String> dictionary = new HashMap<>();
dictionary.put(word, meaning);
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2016-02-24
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多