简体   繁体   English

获取 JSON 子数据

[英]Get JSON child data

I am trying to get phone from my JSON data and playing around with D3.我正在尝试从我的 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"}
    ]
}

] ]

I am able to get the level with:我能够达到以下level

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

.. and thought console.log(d.context.name) would do the trick. .. 并认为 console.log(d.context.name) 可以解决问题。

As @Nick's comment, the type of context is an array.正如@Nick 的评论, context的类型是一个数组。 So you should access it by index like below所以你应该通过index访问它,如下所示

 var data = [ { "id": "00000", "type": "company", "name": "Ideal-Phones", "icon": "\", "level" :"0", "display" : "block", "context": [ {"context-id": "10000", "name": "phone"} ] } ]; var firstItem = data[0].context; console.log("Is array: " + Array.isArray(firstItem)); var firstContext_of_firstItem = firstItem[0]; console.log("Value: " + firstContext_of_firstItem.name);

More requirement: Loop and compare the name of property更多要求:循环比较属性name

 var data = [ { "id": "00000", "type": "company", "name": "Ideal-Phones", "icon": "\", "level" :"0", "display" : "block", "context": [ {"context-id": "10000", "name": "phone"}, {"context-id": "10001", "name": "Ideal-Phones"}, ] } ]; for(let item of data){ var name_of_item = item.name; for(let childContext of item.context){ var name_of_child_context = childContext.name; if(name_of_item === name_of_child_context){ // do something here console.log(childContext); } } }

This code will write to console the desired output "phone"此代码将写入控制台所需的输出“电话”

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);

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

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