如何使用org.json.simple解析没有根元素的JSON文件?

问题描述:

我想使用org.json.simple库解析json文件“c:/employeesRecord.json”。以下是样本json数据,每条记录由文件中的下一行指定。如何使用org.json.simple解析没有根元素的JSON文件?

{"Employees ":["A ;B ;C ;D ;E ;F"],"JobTitle":"Software Engineer"} 
{"Employees ":["A ;B ;C ;D ;E ;F"],"JobTitle":"Software Engineer"} 
{"Employees ":["A ;B ;C ;D ;E ;F"],"JobTitle":"Software Engineer"} 
... 

如何使用org.json.simple解析这种没有根元素的json文件。

+0

以换行符('.split(“\ n”)')分割字符串/缓冲区并逐个解析它们? – SOFe

+0

你想给我一个例子吗? –

+0

对于使用Gson的Android,它在[链接]中解决(http://stackoverflow.com/questions/22334650/convert-json-without-root-element-to-object-using-gson-ksoap2-json-net) –

由于完整文件不是有效的JSON对象,您将需要逐行解析它,即。阅读第一行,使用解析器解析它,保存结果,然后重复下一行。

可以“调整”从文件中输入,并将其转变成一个有效的JSON格式

String json = <your json from file> 
json = "[" + json + "]"; 
json = json.replace("\n",","); 
// parse your json, now it should be a valid. 
+0

是的,它可以转换为有效的JSON格式。 –

分析它一行行由\n劈裂后。

String[] lines = json.split("\n"); 
List<JsonObject> objects = new ArrayList<>(lines.length); // depending on the JSON library you are using 

for(String line : lines) { 
    objects.add(parseJson(line)); 
}