JSONWriter добавить новую строку - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу записать несколько объектов JSON в текстовый файл.Для лучшего обзора я хочу, чтобы каждый объект находился в отдельной строке, и есть моя проблема: я не знаю, как добавить новую строку или отделить эти объекты.Вот мой код:

       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(); 
        }

Надеюсь, вы поможете мне решить мою проблему.Спасибо всем!

РЕДАКТИРОВАТЬ:

Теперь я увидел, что эта структура в моем файле не решает мою проблему.Я хочу разделить несколько строк 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();
   }

Надеюсь, вы сможете мне снова помочь!

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать красивую опцию печати:

   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(); 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...