在一行中分割几个JSON字符串

时间:2019-02-18 13:29:00

标签: java json filereader

我有一个txt文件,它是一行包含多个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 :(得分:0)

因此,我在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();
}

文件读取完成后,您将无法访问集合。

希望这会有所帮助!祝你好运!

P.S。如果您还有其他问题,请随时提出来!

  

编辑

     

所以我刚刚读了上面的评论,您认为它应该是一行。如果>要将太组分开,则可能需要将新行>返回。如果您希望将其设为JSONObject,则可能会遇到>语法错误。尝试在两组值之间添加,