V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
dashixionglihai
V2EX  ›  JavaScript

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

  •  
  •   dashixionglihai · 2017-04-18 14:07:19 +08:00 · 3108 次点击
    这是一个创建于 2537 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    5 条回复    2017-04-18 14:29:45 +08:00
    QAPTEAWH
        1
    QAPTEAWH  
       2017-04-18 14:09:48 +08:00
    object 不保证顺序,请使用 array
    xss
        2
    xss  
       2017-04-18 14:09:49 +08:00
    hash 表本身就是无序的. 你如果想有序, 再加个数组记录你想输出的 key 顺序吧.
    littleylv
        3
    littleylv  
       2017-04-18 14:13:05 +08:00
    ajax 的参数加一个 type: 'json'
    服务端数据返回 json
    这样 ajax 的结果不用人为的再转 json
    试试看
    littleylv
        4
    littleylv  
       2017-04-18 14:13:57 +08:00
    #3 修正 是 dataType: 'json'
    dashixionglihai
        5
    dashixionglihai  
    OP
       2017-04-18 14:29:45 +08:00
    问题已经解决了,是我的后台返回的数据存在问题,我把 id 当作了 key ,转换的时候按照 id 从小到大的顺序排列了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5315 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.