我有一个有效的 JSON 文件。我想将其作为 JSONArray
对象读入内存。
为此,我使用以下代码(由 Apache Commons IO 2.5 提供支持):
String jsonTxt = FileUtils.readFileToString(new File(file.json), "UTF-8");
JSONArray itemsArr = new JSONArray(jsonTxt);
但我收到错误:
Exception in thread "main" org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONArray.<init>(JSONArray.java:106)
at org.json.JSONArray.<init>(JSONArray.java:145)
at myOrg.infomedia.dba.NewsSourcesData.loadNewsSourcesData(NewsSourcesData.java:39)
at myOrg.infomedia.main.Main.main(Main.java:65)
经过多次检查,发现问题的根源在于文件编码。如果我提供 UTF-8
格式的文件,它会抛出异常,但如果我将文件转换为 ANSI
,一切都会正常工作。
我正在使用 org.json
版本 json-20160212.jar。
如何从我的 JSON 文件中以 UTF-8
编码获取 JSONArray
?
最佳答案
我认为您的文件编码为 UTF-8 with BOM尝试使用 Notepad++ 或类似 UTF-8 的无 BOM 格式转换文件
关于java - JSON文件处理错误: A JSONArray text must start with '[' at 1 [character 2 line 1] when use file in UTF-8 encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36823851/