赞
踩
let jsonStr=`{"aaa":111,"bbb":222}`;
let json=JSON.parse(jsonStr);//循环时希望保持这个顺序
let keys=Object.keys(json);//javascript里的对象是一个无序hash结构,这是语言规范和浏览器决定的,我们无法违背,Object.keys拿到的顺序是乱的。
if(!Array.isArray(json)){//json数组本身就是保持顺序的,不用处理,这里只处理json对象
keys.sort(function(a,b){
let idx1=jsonStr.indexOf("\""+a+"\"");//只判断标准的双引号形式的json-key
let idx2=jsonStr.indexOf("\""+b+"\"");//只判断标准的双引号形式的json-key
return idx1-idx2;//index小的排前面
});
}
for (const key of keys) {//这时候循环的就是字符串里的顺序
let value=json[key];
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。