と、にJSONをデシリアライズするための構造体を作成するのですがどのようにして、例えばにこれをデシリアライズするための構造体を作成することができどのように私は、マルチレベルのノード
{
"kind": "Listing",
"data": {
"children": {
"domain": "twitlonger.com",
"other": "blahblah"
},
"children": {
"domain": "Otherplace.com",
"other": "blahblah"
}
}
}
例えば、私は、このJSONを考えてみましょう
-Psuedoは私がちょうどすべての情報は、素晴らしいのおかげだろう
type JSONResp struct {
Kind string
Data []children
}
type children struct {
Domain string
Other string
}
を行うことができるだろうGolangから来ている
struct JSONResp {
let kind:String
let data:[String: Any] {
let children:[String: Any] {
let domain:String
let other:String
}
}
}
extension JSONResp {
init?(json: [String: Any]) {
// Deserialize my stuff
}
}
をコード - 。
これまで私がこれまでに作ったことは、私はそれが正しいかどうか分かりません。ちょうどちょっと私の本能が私に教えてくれています。所与JSONについて
import Foundation
struct Subreddit {
let kind:String
let data:[Data]
}
struct Data {
let modhash:String
let children:[Children]
}
struct Children {
let kind:String
let data:[Payload]
}
struct Payload {
let contest_mode:Bool
let banned_by:NSNull
let domain:String
let subreddit:String
let selftext_html:String
let selftext:String
let likes:NSNull
let suggested_sort:NSNull
let saved:Bool
let id:String
let gilded:Int
let clicked:Bool
let author:String
let name:String
let score:Int
let over_18:Bool
let hidden:Bool
let thumbnail:String
let subreddit_id:String
let link_flair_css_class:String
let author_flair_css_class:String
let permalink:String
let Preview:[Preview]
let locked:Bool
let stickied:Bool
let created:Float64
let url:String
let author_flair_text:String
let quarantine:Bool
let title:String
let created_utc:Float64
let link_flair_text:String
let num_comments:UInt32
let visited:Bool
let ups:UInt32
}
struct Preview {
let images:[Images]
}
struct Images {
let source:[String:Any]
let resolutions:[String:Any]
let id:String
}
extension Subreddit {
init?(json: [String: Any]) {
}
}
[SwiftyJSON(https://github.com/SwiftyJSON/SwiftyJSON)が推奨される –
含まれていない場合
初期化が失敗します質問を助けるが、私はそれが著者*を助けるかもしれないと思った。私はそれを広範囲に使う。それは遅くて面倒でもありません... –