2017-04-24 11 views
0

私は次のJSONを持っています。jastorに名前タグのないjsonを割り当てよう

{ 
"ILS" : { 
"currencyAbrv" : Israel Shekel, 
"currencyDesc" : Israel, Shekel, 
"currencySymbol" : , 
"decimalPlaces" : 2 
}, 
"MTW" : { 
"currencyAbrv" : MTW, 
"currencyDesc" : MTW, 
"currencySymbol" : , 
"decimalPlaces" : 2 
}, 
"KPW" : { 
"currencyAbrv" : Korea (North) Won, 
"currencyDesc" : Korea (North), Won, 
"currencySymbol" : , 
"decimalPlaces" : 2 
} 
} 

そして、このjsonをswiftの次のクラスの配列に割り当てる必要があります。

class Currency: Jastor { 
var currencyAbrv  = "" 
var currencyDesc  = "" 
var currencySymbol  = "" 
var decimalPlaces  = 0 } 

しかし、問題はjsonが名前タグを持っていないので、クラスに関連付けることができます。 どうすればいいですか?

+1

このJSONは有効なJSONではありません –

答えて

0

オープンソースプロジェクトJastorは、もはや維持されていません。したがって、他のJSON解析ライブラリを使用することをお勧めします。そこにはたくさんの良いものがあります。私の意見では、よりエレガントなものの一つは、特にあなたのJSONは少し奇妙なフォーマット、と仮定しますが、例えばのためのcurrency値であるプロトコルImmutableMappablecautionそれはベータ版である!)

を使用して、ObjectMapperありますキーILSは、次のように解析することができます。一般的には

import ObjectMapper 

struct Currency { 
    let name: String 
    let shortName: String 
    let symbol: String 
    let decimalPlaces: Int 
} 

extension Currency: ImmutableMappable { 
    init(map: Map) throws { 
     name = try map.value("currencyDesc") 
     shortName = try map.value("currencyAbrv") 
     symbol = try map.value("currencySymbol") 
     decimalPlaces = try map.value("decimalPlaces") 
    } 
} 

あなたはclassstructを好む必要があります。 Appleはクラスの使用に移行しています。あなたがより多くを学ぶことに興味を持っている場合Stringは、ウォッチこのWWDC video about value types (structs)(Safariで開いている)などの代わりにクラスNSURLの、URLは構造体で、今

代わりにクラスNSStringの構造体です。

+0

@ ali-muradどうしましたか? – Sajjon

関連する問題