原生 js ajax 获取到数据后转换为 json 对象的问题

2017-04-18 14:07:19 +08:00
 dashixionglihai

用 js 原生写的 ajax ,获取到一个数据列表,顺序是正常的

xmlHttp.responseText 这里的顺序是正常的

但是当我将 json 字符串转换为 json 对象的时候,顺序就不是原先的顺序了

var json = eval('(' + xmlHttp.responseText + ')');

请问有啥办法转换完之后还是原先输出的顺序。

3142 次点击
所在节点    JavaScript
5 条回复
QAPTEAWH
2017-04-18 14:09:48 +08:00
object 不保证顺序,请使用 array
xss
2017-04-18 14:09:49 +08:00
hash 表本身就是无序的. 你如果想有序, 再加个数组记录你想输出的 key 顺序吧.
littleylv
2017-04-18 14:13:05 +08:00
ajax 的参数加一个 type: 'json'
服务端数据返回 json
这样 ajax 的结果不用人为的再转 json
试试看
littleylv
2017-04-18 14:13:57 +08:00
#3 修正 是 dataType: 'json'
dashixionglihai
2017-04-18 14:29:45 +08:00
问题已经解决了,是我的后台返回的数据存在问题,我把 id 当作了 key ,转换的时候按照 id 从小到大的顺序排列了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX