我有一个有效的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
?
1条答案
按热度按时间vh0rcniy1#
我认为您有一个UTF-8 with BOM编码文件,请尝试使用Notepad++或类似于UTF-8但不带BOM的格式转换文件