JSONObject返回空:false

时间:2017-11-04 19:35:35

标签: java json org.json

经过一些研究,我没有找到任何解决这个问题的方法: 当我从文件创建一个JSONObject(org.json)时,它返回“empty”:false。为什么它会返回这个以及如何解决它?

爪哇:

JSONObject config = new JSONObject(Files.readAllLines(Paths.get("config/maj.json")));

JSON:

{"FyloZ":"0"}

Files.readAllLines正在返回正确的值。

谢谢!

1 个答案:

答案 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

相关问题