从字典到html表(以某种格式)JSON调用打印键和值

时间:2017-04-05 07:24:51

标签: python html json dictionary

下面的代码是一个JSON调用,它抓取一个字典并将键和值打印到一个html表

$(function() {
      $('a#search').bind('click', function() {
        $.getJSON('/_search', {
          a: $('input[name="a"]').val()
        }, function(data) {
          var tableData = '<table>'
          $.each(data.result, function(key, value){
            tableData += '<tr>' + key + ' ' + '</tr>';
            $.each(value, function(val){
                tableData += '<td>' + val + '</td>';
              });
          });
          tableData += '</table>';
          $('#table').html(tableData);
        });
        return false;
      });
    });

然而,这打印如下

Developer Publisher ReleaseDate Title
0         1         2
0         1         2
0         1         2
0         1         2

它应该像这样打印

Developer Publisher ReleaseDate Title
0         0         0           0
1         1         1           1
2         2         2           2

而且我不知道为什么它会丢失里面的内容而只打印0 1 2所以最后应该打印出这样的

Developer      Publisher ReleaseDate Title
Office Kouan   Shouei    ...         ...
Jorudan        Vap       ...         ...
Beam Software  ...       ...         ...

任何可能出错的想法?​​

1 个答案:

答案 0 :(得分:1)

请将代码更改为:

$(function () {
    $('a#search').bind('click', function () {
        $.getJSON('/_search', {
            a: $('input[name="a"]').val()
        }, function (data) {
            var tableData = '<table>'
            $.each(data.result, function (key, value) {
                tableData += '<tr>' + key + ' ' + '</tr>';
                $.each(value, function (val) {
                    tableData += '<td>' + value[val] + '</td>';
                });
            });
            tableData += '</table>';
            $('#table').html(tableData);
        });
        return false;
    });
});

在代码中调用val只是打印索引而不是javascript对象中的实际值,因此使用value[val]

希望这会有所帮助。干杯...... :)