zoukankan      html  css  js  c++  java
  • Chrome下获取二维JSON被反序的问题

    JSON 自从被人们认识以来,就凭借其简易的编码解码方式,良好的可读性、可扩展性以及与 JavaScript 暧昧的关系,逐步吞噬掉了 XML 的空间,现在已经成为 AJAX 数据交换的绝对主力。但是,如果你从后台返回中得到了下面的 JSON,那么这可能会在 Chrome 浏览器中出现一些小问题,这正是本文所要讨论的。

    var people = {
        "Zhang": {"age":28, "location": "成都"},
        "Lee": {"age":32, "location": "昆明"}
    };
    

    上面的代码看起来一切正常,张和李分别来自成都和昆明,一个28岁,一个32岁。我们接收了这个 JSON ,并赋给变量 people ,在 Firefox、IE、Safari 和 Opera 下没有任何问题,但是在 Chrome 中,这个 JSON 很不幸地被反转了:

    var people = {
        "Lee": {"age":32, "location": "昆明"},
        "Zhang": {"age":28, "location": "成都"}
    };
    

    如果你事先知道了返回的数据中包含李和张的信息,这并不会对你的操作产生任何影响。但如果你对返回的信息内容一无所知,而需要使用 for in 来获取这个 JSON 的内容,那么这意味着在 Chrome 中将会得到与其他浏览器顺序刚好相反一组数据。事实上这并非 Chrome 的过错,这个时候你需要做的并不是针对 Chrome 进行反序,而是通知与你协作的后台程序员,让他们为你返回一个数组,这时得到的结果可以在各个浏览器安全地进行遍历。

    var people = [
        "Zhang": {"age":28, "location": "成都"},
        "Lee": {"age":32, "location": "昆明"}
    ];
    

    以 PHP 为例,后台需要进行像下面这样的调整:

    $result = array();
    for($i = 0 ; $i < 10 ; $i++){
        $result[$i]['name'] = 'xxx';
        $result[$i]['age'] = 000;
    }
    echo json_encode($result);
    

    本文的最后一段代码展示了如何从 WordPress 中提取评论者名称并返回给前端的方法,希望对大家能有所帮助。

    $result = array();
    $comments = get_comments();
    foreach($comments as $key=>$comment){
        $result[$key]["authorName"] = $comment -> comment_author;
    }
    echo json_encode($result);
    
  • 相关阅读:
    认识CSS样式/CSS样式的优势
    form表单中的label标签
    使用提交按钮,提交数据/使用重置按钮,重置表单信息
    使用下拉列表框,节省空间
    (七十)Xcode5及以上对于状态栏和导航栏样式的设定方法
    (六十九)使用block进行消息传递
    1039. Course List for Student (25)
    (六十八)使用XMPPFramework登录
    (六十七)Xcode导入XMPPFramework框架
    (六十六)TableView内容超过一屏时滚动到屏幕底部的方法
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2226327.html
Copyright © 2011-2022 走看看