【问题标题】:JSONWriter add a new LineJSONWriter 添加新行
【发布时间】:2019-07-11 19:25:59
【问题描述】:

我想将几个 JSON 对象写入一个 txt 文件。为了获得更好的视图,我希望每个对象都位于不同的行中,并且存在我的问题:我不知道如何添加新行或分隔这些对象。 这是我的代码:

       JsonObjectBuilder builder = Json.createObjectBuilder(); 
       builder.add("Item", item); 
       builder.add("Choice 1", idchoice1); 
       builder.add("Choice 2", idchoice2);
       builder.add("Choice 3", idchoice3);
       JsonObject jo = builder.build();
       try { 
            FileWriter fw = new FileWriter("SelectedChoice.txt", true); 
            JsonWriter jsonWriter = Json.createWriter(fw); 
            jsonWriter.writeObject(jo);
            jsonWriter.close(); 
            fw.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }

我希望你能帮助我解决我的问题。 谢谢大家!

编辑:

现在我发现我的文件中的这个结构并不能解决我的问题。 我想拆分保存在这个 txt 文件中的几个 JSON 字符串,我的代码只转换 JSON 对象中的第一个 JSON 字符串。这是我的代码:

    try {
       FileReader fr = new FileReader("SelectedChoice.txt");
       BufferedReader br = new BufferedReader(fr);

       String zeile ="";

       while((zeile = br.readLine())!=null) {
           System.out.println(zeile);
           JSONObject choice = new JSONObject(zeile);
           System.out.println(choice);
       }

       br.close();
       fr.close();
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }

希望你能再次帮助我!

【问题讨论】:

    标签: java json filewriter


    【解决方案1】:

    您可以使用漂亮的打印选项:

       JsonObjectBuilder builder = Json.createObjectBuilder(); 
       builder.add("Item", item); 
       builder.add("Choice 1", idchoice1); 
       builder.add("Choice 2", idchoice2);
       builder.add("Choice 3", idchoice3);
       JsonObject jo = builder.build();
       try { 
            Map<String, Object> properties = new HashMap<>(1);
            properties.put(JsonGenerator.PRETTY_PRINTING, true);
            FileWriter fw = new FileWriter("SelectedChoice.txt", true);
            JsonWriterFactory writerFactory = Json.createWriterFactory(properties);
            JsonWriter jsonWriter = writerFactory.createWriter(fw);
            jsonWriter.writeObject(jo);
            jsonWriter.close(); 
            fw.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2013-06-05
      • 2020-07-09
      • 1970-01-01
      • 2011-08-27
      • 2011-08-29
      相关资源
      最近更新 更多