尝试从嵌套的json-javascript访问键和值
我有一个嵌套的json,如下所示:尝试从嵌套的json-javascript访问键和值,javascript,json,Javascript,Json,我有一个嵌套的json,如下所示: {'services': { 'serviceA': 'OptionA', 'serviceB': 'OptionB', 'serviceC': null }, 'AttributeB': 'ValueB', 'AttributeC': 'ValueC' } 我希望以如下表格格式呈现嵌套json(服务): {'services': { 'serviceA': 'Opt
{'services':
{
'serviceA': 'OptionA',
'serviceB': 'OptionB',
'serviceC': null
},
'AttributeB': 'ValueB',
'AttributeC': 'ValueC'
}
我希望以如下表格格式呈现嵌套json(服务):
{'services':
{
'serviceA': 'OptionA',
'serviceB': 'OptionB',
'serviceC': null
},
'AttributeB': 'ValueB',
'AttributeC': 'ValueC'
}
服务选项
选择服务
服务选项
军种
我试着这样做:
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);
}
var myJSONObject={'services':
{
“服务A”:“选项A”,
“服务B”:“选项B”,
“serviceC”:null
},
“属性B”:“值B”,
“AttributeC”:“ValueC”
};
对于(var i=0;i
这似乎没有帮助。我猜我检索对象的方式不正确。有人能帮忙吗?
服务是一个对象,您需要迭代它的属性。为此,您可以尝试以下操作
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]);
}
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]);
}
@nikhil的答案是可行的,但为了安全起见,您可能希望使用hasOwnProperty
检查属性
let services = myJSONObject.services
for(let key in services)
{
if(services.hasOwnProperty(key)) {
console.log(key);
console.log(services[key]);
}
}
@nikhil的答案是可行的,但为了安全起见,您可能希望使用hasOwnProperty
检查属性
let services = myJSONObject.services
for(let key in services)
{
if(services.hasOwnProperty(key)) {
console.log(key);
console.log(services[key]);
}
}
使用Object.key
和Array.forEach
函数的简短解决方案:
var services = myJSONObject['services'];
Object.keys(services).forEach((key) => console.log(key + ' : '+ (services[key] || "")));
输出:
serviceA : OptionA
serviceB : OptionB
serviceC :
使用Object.key
和Array.forEach
函数的简短解决方案:
var services = myJSONObject['services'];
Object.keys(services).forEach((key) => console.log(key + ' : '+ (services[key] || "")));
输出:
serviceA : OptionA
serviceB : OptionB
serviceC :
键入product.key时可能存在的重复项,您是否确实键入了product.AttributeB?另外,使用console.log()查看正在打印的内容的值。您在对象上迭代,但使用数组语法。使用for in
循环在对象上迭代,而不是使用for
循环。键入product.key时可能会重复,您是否实际键入product.AttributeB?另外,使用console.log()查看正在打印的内容的值。您在对象上迭代,但使用数组语法。使用for in
循环来迭代对象,而不是for
循环。完美!这100%奏效。我对嵌套JSON和属性有点陌生!再次感谢你@nikhil@chrisrhyno2003-很高兴帮助您实现完美!这100%奏效。我对嵌套JSON和属性有点陌生!再次感谢你@nikhil@chrisrhyno2003-很高兴帮助你