.txt文件的BOM格式带来的json转换错误

在尝试将一个包含城市信息的.area.txt文件内容转换为JSON格式时,遇到JSONException,原因是文件以UTF-8带BOM格式保存,导致解析错误。通过对文件进行检查并使用Notepad++以UTF-8无BOM格式重新保存,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在读取一个area.txt文件,并将其内容转换为json格式时遇到了一个错误。area.txt内容如下:

{"update":false,"level":12,"status":1,"serversize":25892019,"ratio":6,"cityName":"北京市","cityID":131,}
{"update":false,"level":12,"status":1,"serversize":31961932,"ratio":5,"cityName":"上海市","cityID":289}
{"update":false,"level":12,"status":1,"serversize":15619205,"ratio":10,"cityName":"天津市","cityID":332}
{"update":false,"level":12,"status":1,"serversize":37387084,"ratio":4,"cityName":"重庆市","cityID":132,}
{"update":false,"level":12,"status":1,"serversize":5303103,"ratio":29,"cityName":"合肥市","cityID":127},

我的目的上用java的FileReader和BufferedReader按行读取每行的数据,并将每行的内容转换为一个json格式(通过json获取cityName),按理说,每行的字符串都符合json格式,转换应该没有问题,但是在程序执行的过程中,报如下错误:

org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]

字符串格式不对!!

我打印了每行的字符串,准确无误。

后来翻阅资料,找到原因如下。我的area.txt文件编码格式为utf-8,而微软默认的是将utf-8编码的文件放置bom。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值