0
这可能是一个JS问题,我不确定。JSON命名对象与名称属性的数组
我正在使用JSON存储游戏中敌人的数据。我目前正在构建这样的:
{
"Area 1": {
"Enemy Name": {
"type": "Human",
"lvl": 30
},
"Enemy 2": {
"type": "Human",
"lvl": 30
}
},
"Area 2": {
"Enemy 1": {
"type": "Human",
"lvl": 30
},
"Enemy 2": {
"type": "Human",
"lvl": 30
}
}
}
我想知道我是否应该使用敌人的数组,与"name"
属性,而不是每一个区域来代替。像这样:
{
"Area 1": [
{
"name": "Enemy Name",
"type": "Human",
"lvl": 10
},
{
"name": "Enemy 2",
"type": "Human",
"lvl": 30
}
],
"Area 2": [
{
"name": "Enemy 1",
"type": "Human",
"lvl": 30
},
{
"name": "Enemy 2",
"type": "Human",
"lvl": 30
}
]
}
我相信第二个是我应该这样做的方式,但希望他人的反馈。我认为,第一种方法是,我需要知道敌人的名字才能读取他们的数据,而在数组中,我可以循环遍历区域并阅读每个区域的敌人。 在此先感谢您的帮助!
我认为与第二种方式,你将能够更方便地操纵你的数据,因为它的形式是数组。为什么这是一个优势?因为默认情况下数组是可迭代的,而不是不可迭代的对象的情况(但你可以使它们成为这样)。但请记住,您将无法使用JSON数组中的函数,日期和未定义。 –
我同意*“iterator”*声明,但除非问题实际上可以用“在您的上下文中的实际用法”来表达,否则它实际上只是基于意见。虽然我确实相信命名的键是“反模式”。国际海事组织是。 –
你可以走一步,并创建一个区域对象数组: '[{areaName:'Area 1',敌人:[{name:'enemy 1',type:'human'},{name:'enemy 2 ',键入:'human'}]},{},{}]' –