收藏
回答

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

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
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排序了。


最后一次编辑于  09-25
回答关注问题邀请回答
收藏

2 个回答

  • bibolibo
    bibolibo
    09-26

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

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

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

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