如何识别JSON对象是否嵌套

How to identify if a JSON Object is nested or not

本文关键字:JSON 对象 是否 嵌套 识别 何识别      更新时间:2023-09-26

我通过ajax调用从JSP页面获得javascript页面上的JSON对象。我想知道它是否是一个嵌套的JSON对象。例如:一个简单的JSON对象看起来像这样:

{
    "time":"2015-04-23T06:23:48.173+0000",
    "timeZone":"IST"
}

和一个嵌套的JSON对象看起来像这样:

{
    data" : {
        "attributes" : {
            "key1":"abc",
            "key2":"xyz"
        }
    }
}

所以我想区分这两者,因为我想以不同的方式使用它们

假设您解析了JSON,遍历对象的属性并检查是否有属性值为对象:

var isNested = Object.keys(obj).some(function(key) {
    return obj[key] && typeof obj[key] === 'object';
});

在javascript对象中,都包含在大括号{}中。嵌套对象是指键的值是另一个对象。

在您的示例中,"attributes"对象保存key1和key2。然后将其嵌套在"data"对象中作为其值。

JSON与常规javascript对象基本相同,只是有一些限制和语法。

您可以使用以下函数,该函数检查在第一层之后定义的任何对象:

function check_if_nested(obj) {
    check_nest=[]
    obj.map(function(e,i) {$.each(e, function(v){
      if(typeof(obj[0][v])=='object') {check_nest.push('nested')} else {check_nest.push('not nested')}
    })})
    if(check_nest.includes('nested')) {return(true)} else {return(false)}
    }

用法:

未嵌套示例:

obj_1 = [{
    one: "apples",
    two: "oranges"
}]

. .用法:

check_if_nested(obj_1)

假<<p> 嵌套的例子/strong>:

obj_2 = [{
    one: "apples",
    two: "oranges",
    children: [{
        three: "bananas",
        four: "jicamas"
    }]
}]

. .用法:

check_if_nested(obj_2)
真正