请问以下实例中对json数据处理的部分怎么理解?

<script>
  $(document).ready(function() {

    $("#getMessage").on("click", function() {
      $.getJSON("/json/cats.json", function(json) {

        var html = "";
        json.map(function(obj) {
        
          var keys = Object.keys(obj);
          html += "<div class = 'cat'>";
          keys.map(function(key) {
            html += "<b>" + key + "</b>: " + obj[key] + "<br>";
          });
          
          html += "</div><br>";

        });    
        
        $(".message").html(html);

      });
    });
  });
</script>

<div class="container-fluid">
  <div class = "row text-center">
    <h2>Cat Photo Finder</h2>
  </div>
  <div class = "row text-center">
    <div class = "col-xs-12 well message">
      The message will go here
   </div>
  </div>
  <div class = "row text-center">
    <div class = "col-xs-12">
      <button id = "getMessage" class = "btn btn-primary">
        Get Message
      </button>
    </div>
  </div>
</div>
阅读 2.2k
2 个回答
<script>
  $(document).ready(function() {

    $("#getMessage").on("click", function() {
      $.getJSON("/json/cats.json", function(json) {

        var html = "";
        json.map(function(obj) {
        
          var keys = Object.keys(obj);  --例如一个Json数组 obj = { 0 : "a", 1 : "b", 2 : "c"}; console.log(Object.keys(obj)); 结果为['0', '1', '2']
          html += "<div class = 'cat'>"; --开始构造<div>
          keys.map(function(key) {       --这里是对keys数组的遍历,而key是每次从keys数组拿到的值
            html += "<b>" + key + "</b>: " + obj[key] + "<br>"; -- 进行拼接,obj[key]代表:再拿前边的例子例如一个Json数组 obj = { 0 : "a", 1 : "b", 2 : "c"}; obj[key]代表,比如说obj[0]就等于a
          });
          
          html += "</div><br>";          --</div> 完成div尾部

        });    
        
        $(".message").html(html);        --最后在页面对应的class="message"的元素中添加上面构造的<div>

      });
    });
  });
</script>

其实就是遍历个二维数组,第一次map遍历得到二维数组里面的每个数组keys,keys再进行遍历得到数组里的key和value,这个数组类似于

var json = [
            ["a1","a2"],
            ["b1","b2"],
            ["c1","c2"]
];

其实就是得到这个二维数组所有的值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题