JSON文件处理错误:以UTF-8编码方式使用文件时,JSONArray文本必须在1 [第1行第2个字符]处以'['开头

0md85ypi  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(130)

我有一个有效的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

vh0rcniy

vh0rcniy1#

我认为您有一个UTF-8 with BOM编码文件,请尝试使用Notepad++或类似于UTF-8但不带BOM的格式转换文件

相关问题