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);
    
  • 相关阅读:
    ggplot2绘图入门系列之二:图层控制与直方图
    机器学习与数据挖掘中的十大经典算法
    mysql使用存储过程执行定时任务
    使用hbase-shaded-client解决google包冲突问题
    vue 表单校验及气泡清除
    druid配置
    如何修改maven jar包源码
    jar包冲突最新解决方式
    Hive安装
    Hbase
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2226327.html
Copyright © 2011-2022 走看看