2016-03-22 50 views
0

我試圖將一個iOS應用程序作爲一個項目使用名爲MTG Json的網站作爲數據庫的一部分。從Json中刪除行

它們爲遊戲中打印的所有紙牌提供開源數據庫。這是他們如何格式化它。

{"Air Elemental":{"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"]}, 

    "Ancestral Recall":{"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"]}, 

我希望做的是寫一個代碼,刪除這些行

刪除「祖回憶」的第一部分:或「空元素」:爲方便使用。

有沒有簡單的方法來做到這一點?還是有更好的解決方案,我失蹤了?

由於提前

+0

您沒有解釋爲什麼要更改JSON。你想達到什麼目的? – ryantxr

+0

解析JSON並像訪問任何字典/數組一樣訪問它 –

+0

我正在做這個作爲朋友的好處。他一直以這種方式解析文件,所以我試圖讓他更容易。你展示的方式是他想要的方式。如果我試圖爲自己做這件事,我會試着找到一種解決方法,如果他們都這樣做。 –

回答

1

我覺得你並不需要刪除那些行,因爲它們是JSON格式提供的對象的關鍵,而不是隻是解析JSON,因爲它是和獲取的對象和這裏更具體地說是NSDictionary,通過檢索詞典的所有鍵,您可以從中獲取所有對象

+0

如果你需要任何進一步的幫助,只需要它:) 我愛幫助。 –

+0

我這樣做是爲了朋友的好處。他一直以這種方式解析文件,所以我試圖讓他更容易。如果我試圖爲自己做這件事,我會試着找到一種解決方法,如果他們都這樣做。 –

+0

好吧祝你好運,如果你獲得成功,請填寫後告訴我們。快樂編碼... :) –

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

這將刪除一個關鍵的,你還必須有你的字典的關鍵。這是因爲您可能會創建另一個具有不同名稱的相同類型的數組。你需要有一種方法來改變兩個數組之間的差異。

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"] 
    }] 
+0

我這樣做是爲了一個朋友的青睞。他一直以這種方式解析文件,所以我試圖讓他更容易。你展示的方式是他想要的方式。如果我試圖爲自己做這件事,我會試着找到一種解決方法,如果他們都這樣做。 –