解析JSON ..给未定义?

时间:2014-07-28 13:10:24

标签: json nested

我有一个非常复杂的JSON,它的片段如下:

var designerJSON= 

{
    "nodes":
 [

        {
            "NodeDefinition": {
                "name": "Start",
                "thumbnail": "Start.png",
                "icon": "Start.png",
                "info": "Entry point ",
                "help": "Start point in your workflow.",
                "workflow ": "Start",
                "category": "Basic",
                "ui": [
                    {
                        "label": "Entry point",
                        "category": "Help",
                        "componet": "label",
                        "type": "label"
                    }
                ]
            },
            "States": [
                {
                    "start": "node1"
                }
            ]
        },.......
]
}

我想在各州获得“开始”的价值。但我陷入了进入JSON的第一步。当我尝试

console.log(designerJSON["nodes"]); 

我得到了Undefined

我想要start的值。这是designerJSON["nodes"]["States"]["start"]

你能帮忙吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

designerJSON["nodes"]["States"]["start"]不会这样做。

designerJSON["nodes"]是一个列表,States也是如此,因此您需要按索引(或迭代)访问单个项目。

在您给出的示例中,您需要使用它:

designerJSON['nodes'][0]['States'][0]['start']

或者这个(更清洁的IMO):

designerJSON.nodes[0].States[0].start

答案 1 :(得分:-1)

你有一个JSON数组。 而不是

designerJSON["nodes"]["States"]["start"]

使用

designerJSON["nodes"][0]["States"][0]["start"]

PS。注意如何在主题中格式化代码。

PPS。使用括号来访问js中的属性是“坏样式”(由于js提示建议)。通过点更好地访问那些,例如:

designerJSON.nodes[0].States[0].start