最近在读取一个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。