
解决json数据 key为数字,自动排序问题
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json

·
一、问题
接口返回json数据给前端时,前端反馈拿到的数据并不是按照预期的顺序,数据自动根据key值重新排序了,不是我辛辛苦苦排序的顺序
二、分析并解决
1、分析
json是无序,和数组不一样,从浏览器输出或者接口返回给前端的json数据时,json是无序的,会按照key值重新排序输出;
key值为单纯的数字、字母时,都会重新排序,数字按照从小到大排序,字母按照字母顺序排序;值得注意的是,当key的首字母相同,后面拼接数字时,json输出重新排序后和原数组顺序一样,输出会按照原顺序输出;
2、解决方案
除了1中提到的,key的首字母相同,后面拼接数字,可以按照原顺序输出;如下方案是比较好的一个方案:
PHP中,可以将数组通过函数 array_values 将数组的value值按数组顺序拼接为数字索引数组,这样json数组输出重新排序的结果和数字索引数组顺序一致,完美地解决了自动排序的问题。
三、新的发现
使用uniapp开发时,接口返回的也是json格式,使用谷歌浏览器network查看返回值,发现顺序变了,但是在uniapp中循环使用,顺序是对的;
最后发现谷歌浏览器network查看返回值导致;
浏览器的预览(preview)和响应(response)中展示 JSON 数据的顺序不一样,这是因为它们采用了不同的方式来解析和展示数据。
在浏览器的预览中,通常会对 JSON 数据进行美化和格式化,以便更好地呈现给用户。这种格式化过程可能会导致字段的顺序发生变化;
浏览器的响应(response)中才是接口返回数据的真正格式哦。




适用于现代 C++ 的 JSON。
最近提交(Master分支:6 个月前 )
51a77f1d
1 天前
756ca22e
1 天前
更多推荐
所有评论(0)