Java中解析json数据有错,A JSONObject text must begin with '{',可是我明明有.而且在线解析json也没错.

如题所述

json的字符串如果是从文件中读取的话有可能是因为有隐藏字符造成的,你用System.out.println(json.charAt(0));看看第一个字符是不是‘{’追问

是从文件读出的,第一个怎么不是"{",是空白?

追答

你看看是不是文件里字符串前面是空白?你是从txt文本里读取的吗?如果是空白的话你用trim看能不能把空白消掉

追问

文件内字符串前面不是空白,使用trim后,用System.out.println(json.charAt(0))还是空白,为什么?是文件读出时有错吗?

追答

两种可能:1是读取的时候出问题了。2是可能你的文本格式会在内容前面加上某些头数据。
我看你用的是reader,reader是读取字符的,可能会出问题,你最好还是用stream来读取。

如果用FileInputStream读取还有问题就只能用indexOf+subString来截取字符串了。

追问

大恩不言谢,我已经知道错在哪,就是在json.charAt(0)时回是空白,我使用了subString(1)截取json就成功,可是我想知道这json.charAt(0)的空白哪里来的,还是说文件读取时会自动有个空白,这不应该呀.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-05
json源文件用网盘发一个看看。追问

使用简单的json:
{"success":true,"msg":"成功"}

就会报这样的错

追答

你已经无法自己发现问题,所以也不该以自己(不能发现问题)的方式“简化”样本。
问题应该在项目配置和具体读入的文件上。