我有以下JSON对象:
"StudentData": {
"Name": "Mike",
"Age": 25,
"DateOfBirth": 9/25/1993,
"IsMarried": false
}
我正在开发一个Javascript函数,该函数会向用户显示一个包含上述信息的对话框,但是我希望信息前面有对象的名称(即" StudentData")。
假设我将此对象存储在我的函数中的变量中,并让它称之为myStudent
。
我使用Object.keys(myStudent)[0]
偶然发现SE上的帖子,以获取key
中第一个StudentData
的属性名称,但我希望提取对象本身的名称
我该怎么做呢?
谢谢:)
修改
我希望得到StudentData
字符串,而不是StudentData
对象本身中包含的任何键。
答案 0 :(得分:1)
但我希望提取对象本身的名称。
对象本身没有“名称”。在其他答案中存在一些混淆,认为您只是想在对象中获取“Name”属性,而不是试图获取值“StudentData”。你能做到这一点的唯一方法是它是否存储在这样的对象中:
let myObject = {
"StudentData": {
"Age": 25,
"IsMarried": false
}
}
然后您可以使用Object.keys(myObject)[0]
找到的解决方案来获取"StudentData"
,但如果没有这样存储,则没有获得该值的标准方法。即使在上面的示例中,包含Age
等的对象也没有“StudentData”的“名称”,它只是与外部对象中的键“StudentData”相关联。
答案 1 :(得分:0)
试试这样:
var obj = {
"StudentData": {
"Name": "Mike",
"Age": 25,
"DateOfBirth": 9/25/1993,
"IsMarried": false
}
};
// to get the first key
var keys = Object.keys(obj);
console.log(keys[0]);
// or to get the StudentData keys:
var objectKeys = Object.keys(obj.StudentData);
console.log(objectKeys);
// or to populate dinamically a table
let k, tr = '';
for (k in obj.StudentData) {
tr += '<tr><td>' + k + '</td><td>' + obj.StudentData[k] + '<td></tr>';
}
$('table.popup tbody').append(tr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="popup">
<thead>
<tr>
<td><b>Property</b></td>
<td><b>Value</b></td>
</tr>
</thead>
<tbody></tbody>
</table>
答案 2 :(得分:0)
如果您将此对象存储为
var myStudent = { "StudentData": {
"Name": "Mike",
"Age": 25,
"DateOfBirth": 9/25/1993,
"IsMarried": false
}
}
只需简单myStudent.StudentData.Name
即可获得价值&#39; Mike&#39;。
如果你真的想从对象中获取密钥。你可以运行以下代码。
( function getKeyValueFromJSON() {
var myStudent = { "StudentData": {
"Name": "Mike",
"Age": 25,
"DateOfBirth": '9/25/1993',
"IsMarried": false
}
}
for(var val in myStudent.StudentData) {
console.log("Key: " + val + " value: " + myStudent.StudentData[val]);
}
})();