我有一个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字符串,而我想转换所有这些字符串。
答案 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
,则可能会遇到>语法错误。尝试在两组值之间添加,
。