收藏
回答

json解析问题

问题模块
API和组件


问题一:如图所示,第一行为  uploadFile 返回的数据,data没有自动转为 json 。后面两个是 request 返回的数据会自动解析为 json 格式,是什么原因?


问题二:我尝试用

  1. function strToJson(str){  

  2.      var json = eval('(' + str + ')');  

  3.      return json;  

  4. }  

  1. function strToJson(str){  

  2.     var json = (new Function("return " + str))();  

  3.     return json;  

  4. }  

解析都提示方法不支持,而用 JSON.parse(str),又要求 json 数据中的字段全部需要用引号包起来,而我们服务器返回的数据不全是用引号包裹的。

我又尝试用截取字符串的形式去除第一行data的两边引号,可又是提示不支持 subString 方法。我也是崩溃了。


请问我要如何把第一行的数据解析成 json ?

最后一次编辑于  2017-12-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • 老猴Stormrage
    老猴Stormrage
    2017-12-05

    只说问题一。

    返回的数据里面的data元素值少了引号。

    也就是“data”:{“open_id”: ...}这里,对象没有用引号包起来。

    2017-12-05
    赞同
    回复
  • 老猴Stormrage
    老猴Stormrage
    2017-12-05

    正确应该是

    “data”:“{“open_id”: ...}“

    2017-12-05
    赞同
    回复
  • 古子林
    古子林
    2017-12-05

    楼上给的解释不对,不知道咋艾特评论者

    2017-12-05
    赞同
    回复
  • 老猴Stormrage
    老猴Stormrage
    2017-12-06

    楼主的所谓最终解决方案并没有解决问题一。

    事实上如果你后台拼接的字符串满足JSON格式的话,小程序拿到的都会是对象而不用解析的,所以一定是拼接的字符串有哪里不对。

    这个我做公司的业务已经尝试了无数次了。再复杂的JSON只要格式对,小程序拿到的都会是对象。

    2017-12-06
    赞同
    回复 1
    • ☆龙£♂之§吻☆
      ☆龙£♂之§吻☆
      07-05

      {"result":1,"msg":"获取成功","data":{"ID":"21","Remarks":"很过分3 购房人"}} 比如说这个Remarks值中间加\n试试,老铁


      07-05
      回复
  • 古子林
    古子林
    2017-12-08

    谢谢,这个问题我跟后台说过了,后台检查了一下,说是和其他接口一样的,等他们忙完了我再让他们仔细的查查吧

    2017-12-08
    赞同
    回复