问题一:如图所示,第一行为 uploadFile 返回的数据,data没有自动转为 json 。后面两个是 request 返回的数据会自动解析为 json 格式,是什么原因?
问题二:我尝试用
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
和
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
解析都提示方法不支持,而用 JSON.parse(str),又要求 json 数据中的字段全部需要用引号包起来,而我们服务器返回的数据不全是用引号包裹的。
我又尝试用截取字符串的形式去除第一行data的两边引号,可又是提示不支持 subString 方法。我也是崩溃了。
请问我要如何把第一行的数据解析成 json ?
谢谢,这个问题我跟后台说过了,后台检查了一下,说是和其他接口一样的,等他们忙完了我再让他们仔细的查查吧
楼主的所谓最终解决方案并没有解决问题一。
事实上如果你后台拼接的字符串满足JSON格式的话,小程序拿到的都会是对象而不用解析的,所以一定是拼接的字符串有哪里不对。
这个我做公司的业务已经尝试了无数次了。再复杂的JSON只要格式对,小程序拿到的都会是对象。
{"result":1,"msg":"获取成功","data":{"ID":"21","Remarks":"很过分3 购房人"}} 比如说这个Remarks值中间加\n试试,老铁
楼上给的解释不对,不知道咋艾特评论者
正确应该是
“data”:“{“open_id”: ...}“
只说问题一。
返回的数据里面的data元素值少了引号。
也就是“data”:{“open_id”: ...}这里,对象没有用引号包起来。