2017-09-16 108 views
-1

我想弄清楚如何通过JavaScript访问两个字典里面的值。如何访问字典中的字典?

服务器的JSON输出是; {“meta”:{},“linked”:{custom_fields“:[{”id“:”4“,”name“:”Department“}],”custom_field_values“:[{”id“ “0001”,“value”:“Marketing”,“links”:{“custom_field”:{“id”:“4”,“type”:“custom_fields”}}}]

我需要列出Marketing如系我似乎无法访问“链接”抠ID

如果我创建var linked = linked.custom_field_values;我得到回应

{“ID”:“0001”,“值”:”营销“,”链接“:{”custom_field“:{”id“:”4“,”type“:”custom_fields“}}}

只要我试着var cfl = linked.links.custom_field.id就说链接没有定义。所以我不确定我在做什么错误试图为此创建一个变量?

链接是一个字典与Custom_field右下作为字典与我需要的值。

如果一切正常,这不会打印出正确的部门吗?

if(cfl.id == 4){ 
console.log('Department is ' + linked.value); 
} 
+1

你已经发布的第一个块是无效的JSON,所以我们不能真正帮助你吧。请用实际的服务器输出更新问题(您可以在http://jsonlint.com中仔细检查)。 –

+0

'custom_field_values'是一个数组吗?如果是这样,你将不得不写'var linked = linked.custom_field_values [0];'来获得该对象。 –

+0

'link'没有'links'属性。 – trincot

回答

0

它看起来像custom_field_values一个数组。你必须看看阵列中的第一项,就像这样var linked = linked.custom_field_values[0];

+0

感谢您的回复。 我们可以把它更深一层吗?我需要访问“链接”custom_field:id。 是的,custom_field_values是一个数组。 – computerguyinhere

0

有了一个适当的格式化对象,你会发现,你有一个数组里面。所以你需要为数组获取一个索引。

var object = { 
 
     meta: {}, 
 
     linked: { 
 
      custom_fields: [ 
 
       { 
 
        id: "4", 
 
        name: "Department" 
 
       } 
 
      ], 
 
      custom_field_values: [ 
 
       { 
 
        id: "0001", 
 
        value: "Marketing", 
 
        links: { 
 
         custom_field: { 
 
          id: "4", 
 
          type: "custom_fields" 
 
         } 
 
        } 
 
       } 
 
      ] 
 
     } 
 
    }; 
 

 
console.log(object.linked.custom_fields[0].id); 
 
console.log(object.linked.custom_field_values[0].id);