JSON数组字符串不能转为JSON数组对象?

1.我在msyql数据库直接存储了一个字段result,其内容为一个json数组字符串:
[{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}]

2.客户端发起对php的请求,用字符串data接收返回到的数据:
String data = response.body().string;

打印出来为:
图片描述

3.将data转为JSONArray报错:
JSONArray dataArray = new JSONArray(data);

org.json.JSONException: Value [{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}] of type java.lang.String cannot be converted to JSONArray

4.通过测试,直接这样可以正常解析:
String data = "[{"职业规划":"25","计算机与科学":"85"},{"体育":"25","计算机与科学":"85"}]";
JSONArray dataArray = new JSONArray(data);

5.我通过测试,正常返回的JSON应该是这样的:
图片描述

但是如果是将json直接以字段的形式查询返回却是这样的:

图片描述

不知道是不是因为这样所以才不能解析???

阅读 5.3k
4 个回答

全局匹配\然后replace删除,然后再做解析

是不是因为有\这个转义符,或者头尾含有某些看不见的特殊字符。你可以打印字符串的长度看看是否正确。把\去掉吧

看打印的结果,保存进数据库前是不是有转义操作,如果有的话select后需要相应的去转义

找一下 转义是在哪里产生的, 接口里 再转回去

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题