经过一些研究,我没有找到任何解决这个问题的方法: 当我从文件创建一个JSONObject(org.json)时,它返回“empty”:false。为什么它会返回这个以及如何解决它?
爪哇:
JSONObject config = new JSONObject(Files.readAllLines(Paths.get("config/maj.json")));
JSON:
{"FyloZ":"0"}
Files.readAllLines正在返回正确的值。
谢谢!
答案 0 :(得分:6)
Files.readAllLines()
返回List<String>
,而不是String
。
所以实际上你使用的是以下构造函数(接受一个Object
参数):
https://stleary.github.io/JSON-java/org/json/JSONObject.html#JSONObject-java.lang.Object-
使用bean getters从Object构造JSONObject
List
唯一的getter风格方法是isEmpty()
,所以你得到'empty:false'的东西。
尝试以下方法:
String json = new String(Files.readAllBytes(Paths.get("config/maj.json")), "utf-8");
JSONObject config = new JSONObject(json);
这里我们将JSON读作字节,将它们转换为字符串(假设它在utf-8
中),然后从中创建JSONObject
。