我可以输出JSON对象的名称吗?
假设我设置了一个JSON,如下所示:我可以输出JSON对象的名称吗?,json,Json,假设我设置了一个JSON,如下所示: "A": { "appointment": { "201405091210": [ "1", "2" ] }, } "B": { "appointment": { "201405091211": [ "1", "2" ] }, } "C": { "appoint
"A": {
"appointment": {
"201405091210": [
"1",
"2"
]
},
}
"B": {
"appointment": {
"201405091211": [
"1",
"2"
]
},
}
"C": {
"appointment": {
"201405091212": [
"1",
"2"
]
},
}
现在我想输出每个对象中第一个对象的“名称”,意思是:
201405091210
201405091212
201405091212
我可以这样做吗
我试过:
$.each(data, function (index, data) {
console.log(data.appointment[1]);
})
当代码运行时,您没有JSON,您就有了JavaScript对象 现在我想输出每个对象中第一个对象的“名称”,意思是: 如果您的数据确实如图所示(在
约会
对象中只有一个属性),则可以使用对象.keys()
并使用第一个(唯一)条目获取约会
对象中唯一属性的名称:
$.each(data, function (index, entry) {
console.log(Object.keys(entry.appointment)[0]);
});
另一种方法是使用for in
并获取第一个“own”属性:
$.each(data, function (index, entry) {
var name;
for (name in entry.appointment) {
if (entry.appointment.hasOwnProperty(name)) {
console.log(name);
break;
}
}
});
如果约会
对象中可能有多个属性,则无法可靠地获取“第一个”属性名。。JavaScript对象中的属性没有定义的顺序。您必须查看所有属性并确定(可能通过检查与特定模式匹配的属性)哪一个是您想要的
旁注:我将
每个
迭代器函数中的数据
参数更改为条目
,以避免混淆。在迭代器外部使用数据
指的是整个事情,而在迭代器内部使用数据
指的只是其中一个条目,这只是自找麻烦。你说的“可能输出”是什么意思?