解决json数据 key为数字,自动排序问题

本文分析了JSON数据在返回给前端时出现的排序问题,由于JSON对象本身是无序的,其在浏览器中可能按key值重新排序。解决方案包括在PHP中使用`array_values`函数保持顺序。同时,发现谷歌浏览器Network预览和响应中的JSON排序差异,实际上是由于预览的格式化过程。确保前端正确显示顺序的关键在于理解这一特性并采取相应措施。
摘要由CSDN通过智能技术生成

一、问题

接口返回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)中才是接口返回数据的真正格式哦。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值