我可以输出JSON对象的名称吗?

我可以输出JSON对象的名称吗?,json,Json,假设我设置了一个JSON,如下所示: "A": { "appointment": { "201405091210": [ "1", "2" ] }, } "B": { "appointment": { "201405091211": [ "1", "2" ] }, } "C": { "appoint

假设我设置了一个JSON,如下所示:

"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对象中的属性没有定义的顺序。您必须查看所有属性并确定(可能通过检查与特定模式匹配的属性)哪一个是您想要的


旁注:我将
每个
迭代器函数中的
数据
参数更改为
条目
,以避免混淆。在迭代器外部使用
数据
指的是整个事情,而在迭代器内部使用
数据
指的只是其中一个条目,这只是自找麻烦。

你说的“可能输出”是什么意思?