如何在没有数组作为密钥的情况下获取JSON数据?

时间:2012-02-05 04:43:41

标签: javascript jquery html json

我试图将JSON数据转换为html,但我可以访问的JSON代码没有显示要用作数据键的数组。

有谁知道如何获取这些数据?我的数据值即将出现"未定义"在HTML中。

示例数据:

[ { "stuff" : {
        "categories" : null,
        "value-1" : "a string of cool text to display",
        "value-2" : 3,
        "value-3" : null,
        "value-4" : [  ],
        "value-5" : 58505,
        "value-6" : true,
        "value-7" : false,
  } },

  { "stuff" : {
        "categories" : null,
        "value-one" : "another string of cool text to display",
        "value-two" : 3,
        "value-three" : null,
        "value-four" : [  ],
        "value-five" : 58505,
        "value-six" : true,
        "value-seven" : false,
  } }

]

示例代码:

$(function() {

    $.getJSON( "sample.json", function(data) {

        $.each(data, function() {

            $('<div></div>')
              .hide()
              .append('<p>' + this.value-one + '</p>') 
              .appendTo('#awesome')
              .fadeIn();
        });

    });

});

2 个答案:

答案 0 :(得分:1)

尝试:

    $.each(data, function(key, value) {
        $('<div></div>')
          .hide()
          .append('<p>' + value.stuff['value-one'] + '</p>') 
          .appendTo('#awesome')
          .fadeIn();
    });

更新:当对象密钥中包含-时,您无法使用object.value-one访问它,您必须object['value-one']

答案 1 :(得分:1)

您没有正确使用jquery each

    $.each(data, function(index, value) {
        $('<div></div>')
          .hide()
          .append('<p>' + value.stuff['value-one'] + '</p>') 
          .appendTo('#awesome')
          .fadeIn();
    });