由于后端给予的JSON数据千奇百怪。所以这次被Gson解析后端的数据给坑了。
报错信息
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
怎么看感觉JSON字符串都没毛病,结果发现是一个字符串的问题。所以遇到JSON解析错误,可以把数据放到JSON格式检查里面去查问题。问题一般都是格式问题。
错误后端数据
{"ResultType":0,"Message":"[{"BedNO":"3-01"},{"BedNO":"3-01"}]","Status":"OK"}
这里的问题就在于数组数据前后多了个"
,正确的数据应该是:
{"ResultType":0,"Message":[{"BedNO":"3-01"},{"BedNO":"3-01"}],"Status":"OK"}
解决方法
找到问题就好解决啦~用替换的方式把"
去掉就好。
result = result.replace("\"[", "[");
result = result.replace("]\"", "]");