Javascript 如何声明两个名称相同但属性不同的对象
我正在使用node.js中的函数创建js对象,然后将其转换为XML。xml格式模板要求具有两个名称相同但值不同的属性,例如:Javascript 如何声明两个名称相同但属性不同的对象,javascript,xml,javascript-objects,Javascript,Xml,Javascript Objects,我正在使用node.js中的函数创建js对象,然后将其转换为XML。xml格式模板要求具有两个名称相同但值不同的属性,例如: <?xml version="1.0" encoding="utf-8"?> <XMLExample> <Person id="123ok" type="student"> <searchable>true</searchable> <valid>true</valid> </P
<?xml version="1.0" encoding="utf-8"?>
<XMLExample>
<Person id="123ok" type="student">
<searchable>true</searchable>
<valid>true</valid>
</Person>
<Person name="Aiana" type="student" parentPersonId="123ok">
<lastName>Ali</lastName>
<grade>9</grade>
<gradYear>2020</gradYear>
</Person>
</XMLExample>
这听起来像是一个对象数组,而不是一个对象你不能这样做,但你可以使用对象数组
var futureXMLObject = {
"Person": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
}
]
}
for (var person of futureXMLObject['Person']) {
console.log(person);
}
这是不可能的。如何访问对象中的对象
futureXMLObject['Person']
无法工作,因为它无法返回两个对象
您是否考虑过使用数组
var futureXMLObj = {
"Persons": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
"@parentPersonId": "123ok"
}
]
};
这是评论,不是回答。如果你提供一个你建议的代码示例,这将是一个答案。从技术上讲,这是正确的,但是
“Person”
键名让我恼火。按照惯例,因为它是一个包含多个人的数组,所以应该称为人
。
var futureXMLObj = {
"Persons": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
"@parentPersonId": "123ok"
}
]
};