我正在尝试使用名为MTG Json的网站将iOS应用程序作为项目,作为数据库的一部分。
他们为游戏中打印的所有卡片提供开源数据库。这是他们格式化的方式。
$(document).on('click', '.removerow', function() {
$(this).closest('tr').remove();
})
我想要做的是编写一个删除这些行的第一部分的代码
删除“Ancestral Recall”:或“Air Elemental”:易于使用。
有没有简单的方法可以做到这一点?或者,我错过了更好的解决方案吗?
先谢谢
答案 0 :(得分:1)
我认为您不需要删除这些行,因为它们是以JSON格式提供的对象的关键,而不是仅仅按原样解析JSON并获取对象,更具体地说{{1通过检索字典的所有键,您可以从中获取所有对象
答案 1 :(得分:1)
JSON是一个键值系统。您使用键来获取值/对象。如果删除密钥,则无法获取该值。实际上,如果缺少密钥,JSON解析器会抱怨它不是有效的JSON。
在您的情况下,两个对象几乎相同,它们共享许多常见条目。您可以使用空条目创建一个全局类型,并使其成为一个数组
{
"Items": [{
"layout": "normal",
"name": "Air Elemental",
"manaCost": "{3}{U}{U}",
"cmc": 5,
"colors": ["Blue"],
"type": "Creature — Elemental",
"types": ["Creature"],
"subtypes": ["Elemental"],
"text": "Flying",
"power": "4",
"toughness": "4",
"imageName": "air elemental",
"colorIdentity": ["U"]
}, {
"layout": "normal",
"name": "Ancestral Recall",
"manaCost": "{U}",
"cmc": 1,
"colors": ["Blue"],
"type": "Instant",
"types": ["Instant"],
"text": "Target player draws three cards.",
"mciNumber": "1",
"imageName": "ancestral recall",
"colorIdentity": ["U"]
}]
}
这样会删除一个密钥,因为您仍然需要为您的字典设置密钥。这是因为您可以创建具有不同名称的相同类型的第二个数组。你需要有办法在两个数组之间做出改变。
答案 2 :(得分:0)
我认为他想要这样。我解析了这样的一切,不知道如何修复你的文件,抱歉。
[{
"layout": "normal",
"name": "Ancestral Recall",
"manaCost": "{U}",
"cmc": 1,
"colors": ["Blue"],
"type": "Instant",
"types": ["Instant"],
"text": "Target player draws three cards.",
"mciNumber": "1",
"imageName": "ancestral recall",
"colorIdentity": ["U"]
}, {
"layout": "normal",
"name": "Ancestral Recall",
"manaCost": "{U}",
"cmc": 1,
"colors": ["Blue"],
"type": "Instant",
"types": ["Instant"],
"text": "Target player draws three cards.",
"mciNumber": "1",
"imageName": "ancestral recall",
"colorIdentity": ["U"]
}]