Разделить несколько строк JSON в одну строку - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть текстовый файл, который представляет собой одну строку с несколькими строками 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();
   }

Это строка, которую нужно преобразовать:

{"Item":"MasterNode","Choice 1":1,"Choice 2":0,"Choice 3":-1}{"Item":"WorkerNode","Choice 1":1,"Choice 2":0,"Choice 3":-1}

Этот код преобразует только первый JSONСтрока в строке, хотя я хочу преобразовать все из них.

1 Ответ

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

Итак, я поднял ее в своей IDE и скачал библиотеку org.json, и она работала просто отлично.Из-за того, как вы читаете файл, возможно, вы теряете одну строку и просто сохраняете последнюю строку.Если вы хотите сохранить JSONObject, вы всегда можете попробовать сохранить JSONObject в ArrayList или в какой-либо другой коллекции, такой как эта ...

Collection<JSONObject> JSONObjects = new ArrayList<>();
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);
        JSONObjects.add(choice);
    }

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

Вы можете получить доступ к Коллекции послеВаш файл прочитан.

Надеюсь, это поможет!Удачи!

PS Если у вас есть какие-либо вопросы, не стесняйтесь задавать!

Редактировать

Так что я просто прочитал в комментарияхвыше, что вы думали, что это должна быть одна строкаЕсли> вы хотите, чтобы группы тоже были разделены, вы можете поместить новую строку> обратно.Если вы хотите, чтобы это был один JSONObject, вы можете столкнуться с синтаксической ошибкой>.Попробуйте добавить , между двумя группами значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...