Javascript 获取JSON子数据

Javascript 获取JSON子数据,javascript,json,d3.js,Javascript,Json,D3.js,我试图从我的JSON数据中获取phone,并使用D3 [ { "id": "00000", "type": "company", "name": "Ideal-Phones", "icon": "\uf1ad", "level" :"0", &q

我试图从我的JSON数据中获取
phone
,并使用D3

[
{
    "id": "00000", 
    "type": "company", 
    "name": "Ideal-Phones", 
    "icon": "\uf1ad",
    "level" :"0",
    "display" : "block",
    "context": [
        {"context-id": "10000", "name": "phone"}
    ]
},
{
    "id": "00100",
    "type": "software",
    "name": "Jira",
    "icon": "\uf7b1",
    "parent" : "00000",
    "level" :"1",
    "display": "none",
    "context": [
        {"contxt-id": "10001", "name": "Jira"}
    ]
}
]

我可以通过以下方式获得
级别

function click(d) {
console.log(d.level)}

。。而think console.log(d.context.name)就可以了。

正如@Nick的评论,context的类型是一个数组。因此,您应该通过
索引
访问它,如下所示

var数据=[
{
“id”:“00000”,
“类型”:“公司”,
“名称”:“理想手机”,
“图标”:“\uf1ad”,
“级别”:“0”,
“显示”:“块”,
“背景”:[
{“上下文id”:“10000”,“名称”:“电话”}
]
}
];
var firstItem=数据[0]。上下文;
log(“Is array:+array.isArray(firstItem));
var firstContext_of_firstItem=firstItem[0];

log(“值:”+firstItem.name的firstContext)此代码将写入控制台所需的输出“phone”


context
是一个数组,您需要
d.context[0]。name
谢谢@Mai,如果我想比较这些值,我需要遍历每个数组,对吗?类似于“ForEach if d.context[i].name==o.context[i].name{do..}更新了我的答案,注意更多要求:循环并比较属性名称,请查看@ICodedI-see。谢谢@Mai,我将修改您的代码,以便比较不同的JSON对象。
var txt = '[{\"id\":\"00000\",\"type\":\"company\",\"name\":\"Ideal-Phones\",\"icon\":\"\uf1ad\",\"level\":\"0\",\"display\":\"block\",\"context\":[{\"context-id\":\"10000\",\"name\":\"phone\"}]},{\"id\":\"00100\",\"type\":\"software\",\"name\":\"Jira\",\"icon\":\"\uf7b1\",\"parent\":\"00000\",\"level\":\"1\",\"display\":\"none\",\"context\":[{\"contxt-id\":\"10001\",\"name\":\"Jira\"}]}]'
var obj = JSON.parse(txt);
alert(obj[0].context[0].name);