繁体   English   中英

使用Jquery在JSON解码中访问第二个数组

[英]Accessing second array in a JSON decode using Jquery

我需要从JSON decoded字符串访问第二个数组,但是我没有运气。

整个JSON字符串显示在var RAW00 ,然后拆分为var RAW01var RAW02 所有这三个都在测试中RAW00 is identical to msg

当它们被拆RAW00 -我可以访问任何一个,这取决于我以哪个变量开头,但是当我使用RAW00我无法访问“教师”部分。

如果需要,我将提供更多详细信息,但我的问题是:

我如何在第二个$.each (嵌套)块中查看和访问导师数组? ]

谢谢 :-)

success: function(msg)
{
    var test = "";
    var raw00 = {
        "allData": [
            {
                "class2": [
                    {
                        "tid": "1",
                        "name": "Monday 2"
                    },
                    {
                        "tid": "1",
                        "name": "Monday Test"
                    }
                ]
            },
            {
                "tutor": [
                    {
                        "fname": "Jeffrey",
                        "lname": "Kranenburg"
                    },
                    {
                        "fname": "Jeffrey",
                        "lname": "Kranenburg"
                    }
                ]
            }
        ]
    };

    var raw01 = {
        "allData": [
            {
                "class2": [
                    {
                        "tid": "1",
                        "name": "Monday 2"
                    },
                    {
                        "tid": "1",
                        "name": "Monday Test"
                    }
                ]
            }
        ]
    };
    var raw02 = {
        "allData": [
            {
                "tutor": [
                    {
                        "fname": "Jeffrey",
                        "lname": "Kranenburg"
                    },
                    {
                        "fname": "Jeffrey",
                        "lname": "Kranenburg"
                    }
                ]
            }
        ]
    };

    $.each(raw00.allData, function(index, entry) 
           {  
               $.each(entry.class2, function (index, data) 
                      {
                          console.log(this.name);
                          test += '<tr><td>'+this.name+'</td>';
                      });

               $.each(entry.tutor, function (index, data) 
                      {
                          console.log(this.fname);
                          test += '<td>'+this.name+'</td></tr>';
                      });

               $('#all-courses-table-content').html( test );
           });

您需要检查数组的当前元素是具有class2属性还是tutor属性的对象。

$.each(raw00.allData, function(index, entry) {  
    if (entry.hasOwnProperty('class2')) {
        $.each(entry.class2, function (index, data) 
               {
                   console.log(this.name);
                   test += '<tr><td>'+this.name+'</td>';
               });
    }

    if (entry.hasOwnProperty('tutor')) {
        $.each(entry.tutor, function (index, data) 
               {
                   console.log(this.fname);
                   test += '<td>'+this.fname+'</td></tr>';
               });
    }

    $('#all-courses-table-content').html( test );
});

如果重新设计数据结构,事情可能会更简单。 当每个对象只有一个键并且每个键都不相同时,通常没有数组对象是没有意义的。 我建议您用单个对象替换allData数组,如下所示:

var raw00 = {
    "allData": {
        "class2": [
            {
                "tid": "1",
                "name": "Monday 2"
            },
            {
                "tid": "1",
                "name": "Monday Test"
            }
        ],
        "tutor": [
            {
                "fname": "Jeffrey",
                "lname": "Kranenburg"
            },
            {
                "fname": "Jeffrey",
                "lname": "Kranenburg"
            }
        ]
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM