我有一个嵌套的json,看起来像这样:
{'services':
{
'serviceA': 'OptionA',
'serviceB': 'OptionB',
'serviceC': null
},
'AttributeB': 'ValueB',
'AttributeC': 'ValueC'
}
我想以表格格式呈现嵌套的json(服务),如下所示:
服务选项 serviceA OptionA serviceB OptionB serviceC
我正在尝试这样的事情:
var myJSONObject = {'services':
{
'serviceA': 'OptionA',
'serviceB': 'OptionB',
'serviceC': null
},
'AttributeB': 'ValueB',
'AttributeC': 'ValueC'
};
for(var i = 0; i < myJSONObject.services.length; i++)
{
var product = myJSONObject.services[i];
alert(product.key);
alert(product.value);
}
这似乎没有帮助。我猜我正在以错误的方式检索对象。有人可以帮忙吗?
答案 0 :(得分:3)
services
是一个对象,您需要迭代其属性。为此,您可以尝试以下
var myJSONObject = {'services':
{
'serviceA': 'OptionA',
'serviceB': 'OptionB',
'serviceC': null
},
'AttributeB': 'ValueB',
'AttributeC': 'ValueC'
};
for(var key in myJSONObject.services)
{
alert(key);
alert(myJSONObject.services[key]);
}
答案 1 :(得分:0)
@nikhil的答案有效,但您可能希望使用hasOwnProperty
检查属性也是安全的。
let services = myJSONObject.services
for(let key in services)
{
if(services.hasOwnProperty(key)) {
console.log(key);
console.log(services[key]);
}
}
答案 2 :(得分:0)
使用Object.keys
和Array.forEach
函数的简短解决方案:
var services = myJSONObject['services'];
Object.keys(services).forEach((key) => console.log(key + ' : '+ (services[key] || "")));
输出:
serviceA : OptionA
serviceB : OptionB
serviceC :