gpt4 book ai didi

java - 读取 .json 文件 - BOM 问题?

转载 作者:行者123 更新时间:2023-12-01 12:44:35 27 4
gpt4 key购买 nike

我需要读取 .json 文件并在运行时更改字段。

问题是当我尝试阅读它时:

JSONObject jOb=null;


try {
jOb = new JSONObject(filePath);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println(jOb.toString());
try {
jOb.put("responseType", "TESTicles");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println(""+jOb);

我收到以下错误:“JSONObject 文本必须以 '{' at 1 [character 2 line 1] 开头”

我认为问题可能出在 BOM 标记上,因为我的文件以“{”开头

这是一个示例(我的 json 文件的开头):

{
"base":{
"sites":{
"local":{
"name":"siteA",
"datasource":{
...

我需要删除 BOM 标记才能读取文件,但如何在不读取文件的情况下做到这一点?

我读过:

This , this以及许多其他相关内容,但我似乎找不到任何解决我的问题的方法。我能做什么?

最佳答案

假设您正在使用 library defined at json.org ,您的代码所做的是将文件名视为 JSON 字符串并尝试将其解释为 JSON 对象。

阅读文档,您需要将文件作为输入流打开,将其作为 JSONTokener 构造函数中的参数传递,然后将其作为参数传递给 JSONObject 构造函数,如下所示:

InputStream foo = new FileInputStream(filePath);
JSONTokener t = new JSONTokener(foo);
JSONObject obj = new JSONObject(t);

注意:以上内容未经测试,甚至未编译。

关于java - 读取 .json 文件 - BOM 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com