Javascript 获取JSON子数据
我试图从我的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
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);