java - JSON文件处理错误: A JSONArray text must start with '[' at 1 [character 2 line 1] when use file in UTF-8 encoding

标签 java json encoding utf-8 apache-commons-io

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

相关文章:

java - 客户端-服务器应用程序套接字问题

java - NetBeans 中的 JMapViewer : adding only map to a GUI JPanel

jquery - Keydown 事件不使用最新的输入值

python - 在 Django 模板中包含 HTML 变量而不转义

string - 从 .dbf 文件中读取编码字符串

c# - 查询字符串的正确编码是什么?

java - OptaPlanner 车辆路线和客户拜访之间的关系

java - Android Studio 在编译时未检测到支持库

javascript - 根据 json 查找更改列表项的背景

javascript - JSON 编码警报消息