如何避免在文件的JSONArray中写入重复值

时间:2019-03-11 09:00:41

标签: java arrays json

我正在尝试在从JSONArray获取的javafx list[values are added in javafx list at the run-time by the user]中写入字符串值。 但是,不幸的是,它多次添加同一条目,从而导致文件中的值重复。

public static void DumpValues(String value) throws IOException, ParseException {
    try {
        Map m = new LinkedHashMap<String, String>();
        JSONArray ja = new JSONArray();

        // Check if array not exist
        File file1 = new File(FILE_NAME);
        if (file1.length() == 0) {
            JSONObject jo = new JSONObject();
            m = new LinkedHashMap<String, String>();
            m.put("Data", value);
            ja.add(m);
            jo.put("Array", ja);
            FileWriter file = new FileWriter(FILE_NAME, false);
            file.append(jo.toString());
            file.flush();
            file.close();
        } else {
            // Check if array exist, add values in the array
            JSONParser parser = new JSONParser();
            Object obj = parser.parse(new FileReader(FILE_NAME));
            if (obj == null) {
                System.out.println("ex");
            }

            JSONObject jsonObject = (JSONObject) obj;
            JSONArray jsonArray = (JSONArray) jsonObject.get("Array");

            System.out.println("..." +jsonArray.size());     
            JSONObject jo = new JSONObject();
            m = new LinkedHashMap(2);
            m.put("Data", value);
            jsonArray.add(m);
            jo.put("Array", jsonArray);

            FileWriter file = new FileWriter(FILE_NAME, false);
            file.append(jo.toString());
            file.flush();
            file.close();     
        }
    } catch (Exception ex) {
     Logger.getLogger(JSONSearching.class.getName()).log(Level.SEVERE, null, ex);
    }
}

我不知道多次写入String值是什么原因,我只想一次添加该值。

0 个答案:

没有答案