2016-03-22 22 views
0

Ich versuche, eine iOS-Anwendung als ein Projekt mithilfe einer Website namens MTG JSON als Teil der Datenbank zu machen.Entfernen von Zeilen aus einem JSON

Sie bieten eine Open-Source-Datenbank für alle im Spiel gedruckten Karten. So formatieren sie es.

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

Was würde ich tun möchte, ist ein Code schreiben, der den ersten Teil dieser Linien

entfernen „Ancestral Recall“ entfernt: oder „Air Elemental“: für einfache Bedienung.

Gibt es eine einfache Möglichkeit, dies zu tun? Oder gibt es eine bessere Lösung, die ich vermisse?

Vielen Dank im Voraus

+0

Sie haben nicht erklärt, warum Sie den JSON ändern wollten. Was versuchst du zu erreichen? – ryantxr

+0

Analysieren Sie den JSON und greifen Sie darauf zu, wie Sie es bei einem Wörterbuch/Array tun würden. –

+0

Ich tue dies als Gefallen für einen Freund. Er hat Dateien immer auf diese Weise geparst, also versuche ich es ihm leichter zu machen. Die Art und Weise, wie Sie gezeigt haben, ist die Art, wie er es will. Wollte ich das für mich selbst tun, würde ich versuchen, einen Weg zu finden, um zu analysieren, wie es alle taten. –

Antwort

1

Ich glaube, Sie diese Zeilen nicht entfernen müssen, da sie der Schlüssel für die Objekte zur Verfügung gestellt im JSON-Format sind, statt dass nur die JSON analysieren, wie es ist und die Objekte bekommen und hier genauer gesagt NSDictionary und durch Abrufen aller Schlüssel des Wörterbuchs können Sie alle Objekte daraus erhalten

+0

Wenn Sie weitere Hilfe benötigen, fragen Sie einfach danach :) Ich liebe es zu helfen. –

+0

Ich mache das als Gefallen für einen Freund. Er hat Dateien immer auf diese Weise geparst, also versuche ich es ihm leichter zu machen. Wollte ich das für mich selbst tun, würde ich versuchen, einen Weg zu finden, um zu analysieren, wie es alle taten. –

+0

Okay, wünschen Ihnen ein Glück dafür und wenn Sie Erfolg haben, lassen Sie uns bitte darüber wissen, wenn Sie so füllen. Happy Coding ... :) –

1

JSON ist ein Schlüssel-Wert-System. Sie verwenden den Schlüssel, um den Wert/das Objekt zu erhalten. Wenn Sie den Schlüssel entfernen, können Sie den Wert nicht abrufen. Wenn ein Schlüssel fehlt, wird sich der JSON-Parser darüber beschweren, dass es kein gültiger JSON ist.

In Ihrem Fall sind beide Objekte fast identisch, sie teilen viele gemeinsame Einträge. Sie könnten einen globalen Typen, mit leeren Einträgen erstellen und

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

ein Array machen, dass ein Schlüssel entfernen würde, wie Sie noch einen Schlüssel für das Wörterbuch haben müssen. Dies liegt daran, dass Sie ein zweites Array desselben Typs mit einem anderen Namen erstellen können. Sie müssten einen Weg haben, um zwischen den beiden Arrays zu unterscheiden.

0

Ich denke, er will es so. Ich parse alles so, weiß aber nicht, wie ich deine Datei reparieren soll, tut mir leid.

[{ 
     "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

Ich mache das als Gefallen für einen Freund. Er hat Dateien immer auf diese Weise geparst, also versuche ich es ihm leichter zu machen. Die Art und Weise, wie Sie gezeigt haben, ist die Art, wie er es will. Wollte ich das für mich selbst tun, würde ich versuchen, einen Weg zu finden, um zu analysieren, wie es alle taten. –

Verwandte Themen