2016-03-22 16 views
0

Veritabanının bir parçası olarak MTG Json adlı bir web sitesini kullanarak proje olarak bir iOS Uygulaması yapmaya çalışıyorum.Json'dan Satırları Kaldırma

Oyunda basılan tüm kartlar için açık kaynaklı bir veritabanı sağlarlar. Bu şekilde biçimlendiriyorlar. Kullanım kolaylığı için: ya da "Hava Elemental": Ne yapmak istiyorsunuz ne

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

bir "Ancestral hatırlayın" Çıkarma bu çizgilerin

ilk bölümünü kaldırır kod yazmak olduğunu.

Bunu yapmanın kolay bir yolu var mı? Yoksa eksik olduğum daha iyi bir çözüm var mı? Peşin

Teşekkür

+0

JSON'u neden değiştirmek istediğini açıklamıyorsunuz. Neyi başarmaya çalışıyorsun? – ryantxr

+0

JSON'u ayrıştırın ve herhangi bir sözlük/dizi yaptığınız gibi erişin –

+0

Bunu bir arkadaş için bir iyilik olarak yapıyorum. Dosyaları her zaman böldü bu yüzden onu daha kolay hale getirmeye çalışıyorum. Göstermiş olmanın yolu istediğin gibi. Bunu kendim için yapmaya çalışmıştım, eğer hepsinin yaptığı gibi ayrıştırmak için bir yol bulmaya çalışırdım. –

cevap

1

onlar JSON biçiminde sağlanır nesneler için anahtardır gibi bu sadece olduğu gibi JSON ayrıştırmak ve nesneleri almak yerine, bu satırları kaldırmak gerekmez düşünmek ve Burada daha spesifik olarak NSDictionary ve sözlüğün tüm tuşlarını alarak tüm nesneleri buradan alabilirsiniz

+0

Daha fazla yardıma ihtiyacınız varsa, bunu isteyin :) Yardım etmeyi seviyorum. –

+0

Bunu bir arkadaş için bir iyilik olarak yapıyorum. Dosyaları her zaman böldü bu yüzden onu daha kolay hale getirmeye çalışıyorum. Bunu kendim için yapmaya çalışmıştım, eğer hepsinin yaptığı gibi ayrıştırmak için bir yol bulmaya çalışırdım. –

+0

Tamam, bunun için size iyi şanslar dileriz ve başarı elde ederseniz, lütfen bunu bize bildirin. Mutlu Kodlama ... :) –

1

JSON bir anahtar-değer sistemidir. Değer/nesne almak için anahtarı kullanın. Anahtarı kaldırırsanız, değeri alamazsınız. Aslında, bir anahtar eksikse, JSON ayrıştırıcısı geçerli bir JSON olmadığını bildirir.

Sizin durumunuzda, her iki nesne de hemen hemen aynıdır, birçok ortak girişi paylaşırlar. Sen boş girişleriyle, küresel bir türü oluşturup ona hala sözlük için bir anahtara sahip olması gibi bir tuşa ortadan kaldıracak bir dizi

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

yapabiliriz. Bunun nedeni, farklı bir ada sahip, aynı türden ikinci bir dizi oluşturabilir. Her iki dizinin arasındaki farkı yaratmanın bir yolu olmalı.

0

Sanırım bunu böyle istiyor. Herşeyi böyle ayrıştırıyorum, yine de dosyanızı nasıl düzelteceğimi bilmiyorum, üzgünüm.

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

Bunu bir arkadaş için bir iyilik olarak yapıyorum. Dosyaları her zaman böldü bu yüzden onu daha kolay hale getirmeye çalışıyorum. Göstermiş olmanın yolu istediğin gibi. Bunu kendim için yapmaya çalışmıştım, eğer hepsinin yaptığı gibi ayrıştırmak için bir yol bulmaya çalışırdım. –