收藏
回答

Request接收json数据无法转化为问题

问题模块
API和组件

1.服务器端json数据:

return  '[{"abc":[195,62,42,58,72,64,72,11,0,0,0,0]},{"xyz":"111"}]';

2.小程序接收数据res.data

console.log(res.data)

返回值:[{"abc":[195,62,42,58,72,64,72,11,0,0,0,0]},{"xyz":"111"}] ,但无法通过setData()取值

3.小程序接收数据res.data[0]

无返回数据

4.小程序接收数据res.data.abc

无返回数据

5.小程序接收数据res.data[0].abc

无返回数据

6.把json数据改简单

return  ”[195,62,42,58,72,64,72,11,0,0,0,0]”;

console.log(res.data)返回结果正常:[195,62,42,58,72,64,72,11,0,0,0,0]

7.把json数据做成key:val形式

return  '{"abc":[195,62,42,58,72,64,72,11,0,0,0,0]}';

console.log(res.data)返回结果正常:{”abc":[195,62,42,58,72,64,72,11,0,0,0,0]}

但通过console.log(res.data.abc)、console.log(res.data[0].abc)等方法均无法取得里面的数组值。

系统显示,res.data格式为对象,因此JSON.parse()无法使用。


总结:

1.目前测试结构只能接收单一数组,无法接收键值对类型;

2.多维数组生成的json数据更无法解析;

3.经测试“data.”后面,无法紧跟以数字开头的关键字,即data数据不支持数字或数字开头的key,也不支持引号或[]等其他方式表示key值,这应该是遵循了变量命名规则,但是这一点在实际项目中会造成很大困扰。


求各位大神帮忙解决这个问题。

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

6 个回答

  • X--Man
    X--Man
    2017-08-21

    我也遇到这个问题,你解决了吗

    2017-08-21
    赞同
    回复
  • 醉酒踏浪
    醉酒踏浪
    2017-08-21

    没有

    2017-08-21
    赞同
    回复
  • 醉酒踏浪
    醉酒踏浪
    2017-08-21

    关键问题是小程序无法识别由request获取的数据,不知道是什么原因。

    2017-08-21
    赞同
    回复
  • 醉酒踏浪
    醉酒踏浪
    2017-08-21

    目前小程序的支持力度还很脆弱,要靠自创平台和语法替代前台和部分后台几种成熟语言的功能,还有很长的路要走。这也许是小程序暂时火不起来的原因。要是微信管理层能接收来自广大开发者的问题反馈和意见就好了

    2017-08-21
    赞同
    回复
  • 醉酒踏浪
    醉酒踏浪
    2017-08-21
    [1537,1869,5558,732,1161,11007]
     
    bar.js [sm]:77 [292.8, 123.91, 225.08, 65.73, 16.08, 2.27]

    上面那行是从后台取回的数组,下面这行是在小程序data中的静态数组。下面的形式才是小程序可以识别的数组形式,上面的是死数据。

    2017-08-21
    赞同
    回复
  • 醉酒踏浪
    醉酒踏浪
    2017-08-21



    看看二者的区别,求大神帮忙解决

    2017-08-21
    赞同
    回复