收藏
回答

小程序里与后台API返回的JSON数据排序不一样

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.request 微信安卓客户端 7.0.6 2.8.2


https://rdyc.qididz.com/api/food/test 这是通过posman的工具返回的一个按sort字段排序的结果,这样看是正确的。但是用小程序接收

TestTap: function() {   
  wx.request({
    url: 'http://rdyc.qididz.com/api/food/test',
    success:function(res) {     
      console.log(res.data); //如果有food的JSON数据,就按id的升序排序     
    }
  })
},

结果怎么都是按id的升序了。


别外还有个API接口,https://rdyc.qididz.com/api/food/test_ok,他是没有food这个子json数据集。返回的数据同小程序是一样的。按sort排序了。


回答关注问题邀请回答
收藏

2 个回答

  • bibolibo
    bibolibo
    2019-09-26

    谢邀,感觉是嵌套第二个json的时候会自动根据id 排序这种,一楼的方法可以尝试一下,再写个for循环进行sort的排序

    2019-09-26
    有用
    回复 2
    • 朱伟. 启迪一卡通
      朱伟. 启迪一卡通
      2019-09-26
      我也觉得是因为嵌套引起的。但请问如果写个这样的for循环,大概的思路或者相关的代码是如何的呢。谢谢。
      2019-09-26
      回复
    • bibolibo
      bibolibo
      2019-09-26回复朱伟. 启迪一卡通
      你的数据都拿到了,进行已给根据sort排序就好了,就是数字比较大小..冒泡事件这种...
      2019-09-26
      回复
  • Xpt
    Xpt
    2019-09-25

    list.sort(function(a,b){return a.sort-b.sort});

    2019-09-25
    有用
    回复 4
    • 朱伟. 启迪一卡通
      朱伟. 启迪一卡通
      2019-09-26
      res.data.sort(function (a, b) { return a.sort - b.sort }); 可以解决test_ok 的排序,但对于有子json的数据集,是报错的。并且没子集的,也是按API的顺序返回的。
      2019-09-26
      回复
    • Xpt
      Xpt
      2019-09-26回复朱伟. 启迪一卡通
      写个for循环重组一下
      2019-09-26
      回复
    • Xpt
      Xpt
      2019-09-26回复Xpt
      再仔细看了下第一个接口返回的数据,你可以让后端把接口规范一下,写成第二个接口那种
      2019-09-26
      回复
    • 朱伟. 启迪一卡通
      朱伟. 启迪一卡通
      2019-09-26
      第二个接口同第一个接口除了没有子集JSON外,所有写法是一样的。所以不太明白所说的规范是指什么。
      2019-09-26
      回复
登录 后发表内容
问题标签