您的位置:首页 > Web前端 > JavaScript

json 数组读取排序问题

2018-03-28 18:34 218 查看
今天遇到一个依赖健值数组读取排序的问题  
接口开发同事返回的json格式是这样的, 我在小程序调用接口读取数组遍历之后发现排序乱了{
"price_info": {

"08": {
"01": {
"price": 9999,
"booked": 0
},
"02": {
"price": 99999,
"booked": 0
},
"03": {
"price": 99999,
"booked": 0
},
"04": {
"price": 99999,
"booked": 0
},
"05": {
"price": 99999,
"booked": 0
},
"06": {
"price": 99999,
"booked": 0
}
},
"09": {
"01": {
"price": "15",
"booked": 1
},
"02": {
"price": "15",
"booked": 1
},
"03": {
"price": "15",
"booked": 0
},
"04": {
"price": "15",
"booked": 0
},
"05": {
"price": "15",
"booked": 0
},
"06": {
"price": "15",
"booked": 0
}
},
"10": {
"01": {
"price": "15",
"booked": 1
},
"02": {
"price": "15",
"booked": 0
},
"03": {
"price": "15",
"booked": 0
},
"04": {
"price": "15",
"booked": 0
},
"05": {
"price": "15",
"booked": 0
},
"06": {
"price": "15",
"booked": 0
}
}
}
}这是我的一个数组,price_info 健值提供是08、09、10 的排序 
在我的项目里我用for in 遍历数组也会出现排序错误

我通过https://jsoneditoronline.org/  在线解析, 发现结果变成这样了,排序的08、09 排到后面



 接着我将08,09 前面的0去掉,发现读取的顺序正常了
 解决方案
 http://w3help.org/zh-cn/causes/SJ9011 
  for-in 语句无法保证遍历顺序,应尽量避免编写依赖对象属性顺序的代码。如果想顺序遍历一组数据,请使用数组并使用 for 语句遍历。 如果想按照    定义的次序遍历对象属性
 如果遇到需要依赖对象的排序,最好采用数组形式,例如上面的json可以改为
  {
"price_info": [
{"key":"08",
"info": {
"01": {
"price": 9999,
"booked": 0
},
"02": {
"price": 99999,
"booked": 0
},
"03": {
"price": 99999,
"booked": 0
},
"04": {
"price": 99999,
"booked": 0
},
"05": {
"price": 99999,
"booked": 0
},
"06": {
"price": 99999,
"booked": 0
}
}
},
{"key":"09",
"info": {
"01": {
"price": 9999,
"booked": 0
},
"02": {
"price": 99999,
"booked": 0
},
"03": {
"price": 99999,
"booked": 0
},
"04": {
"price": 99999,
"booked": 0
},
"05": {
"price": 99999,
"booked": 0
},
"06": {
"price": 99999,
"booked": 0
}
}
},
{"key":"10",
"info": {
"01": {
"price": 9999,
"booked": 0
},
"02": {
"price": 99999,
"booked": 0
},
"03": {
"price": 99999,
"booked": 0
},
"04": {
"price": 99999,
"booked": 0
},
"05": {
"price": 99999,
"booked": 0
},
"06": {
"price": 99999,
"booked": 0
}
}
}
]
}然后通过for 遍历,(不用 for in) 遍历出来的健值再判断使用即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  小程序 json 数组 排序