从Json中删除行

时间:2016-03-22 04:42:33

标签: json swift

我正在尝试使用名为MTG Json的网站将iOS应用程序作为项目,作为数据库的一部分。

他们为游戏中打印的所有卡片提供开源数据库。这是他们格式化的方式。

$(document).on('click', '.removerow', function() {
  $(this).closest('tr').remove();
})

我想要做的是编写一个删除这些行的第一部分的代码

删除“Ancestral Recall”:或“Air Elemental”:易于使用。

有没有简单的方法可以做到这一点?或者,我错过了更好的解决方案吗?

先谢谢

3 个答案:

答案 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"]
    }]