在jQuery解析后获取JSON未定义

时间:2012-11-27 14:10:15

标签: javascript jquery json parsing

以下是JSON字符串的示例:

    {
      "table": {
         "tfoot": "Footer",
         "tr0": [
                  {
                  "form": "formData",
                  "td": "Content"
                  }
                ]
       }
     }

我用来解析它的jQuery代码:

$.ajax({ 
    type: 'GET', 
    url: source, 
    dataType: 'json',
    success: function (data) { 

            $.each(data, function() {
              $.each(this, function(key, value) {
                switch (key) {
                    case "tfoot":
                        alert(value) // access to this node works fine                      
                    break;

                    default: 
                        alert(value.td) // this is undefined
                    break;
                }       
              });
            });
        }
    });

我尝试使用Chrome的Console.log,我可以看到每个节点和数据都没问题。任何人都知道如何访问“表单”或“td”节点?

3 个答案:

答案 0 :(得分:1)

对象值是一个数组,因此您无法访问它的td属性。如果你想进入数组td属性中的第一项,你需要做:

value[0].td

完整代码:

$.each(t, function() {
  $.each(this, function(key, value) {
    switch (key) {
      case "tfoot":
        console.log(value) // access to this node works fine                      
      break;

      default: 
        console.log(value[0].td) // this now prints "Content"
      break;
    }       
  });
 });

答案 1 :(得分:0)

value.table.tr0 [0] .td

你在找什么。

答案 2 :(得分:0)

在json {}中定义了一个json对象,[]定义了一个json数组。

因此,在"tr0"来自[](数组)后,您需要使用索引访问它。 value.table.tr0[0].td应该有效