2017-04-04 31 views
-4

私が何か提案Swift 3でのJSON解析?

[[ 
    { 
    "id" : "1ab66b240b5441a35f1c963c802ebc23", 
    "sizes" : { 
     "IPhone" : { 
     "width" : 288, 
     "actualHeight" : 288, 
     "sizeName" : "IPhone", 
     "url" : "abc1.jpg", 
     "actualWidth" : 288, 
     "height" : 360 
     }, 
     "IPhone2" : { 
     "width" : 164, 
     "actualHeight" : 164, 
     "sizeName" : "Large", 
     "url" : "https:abc.jpg", 
     "actualWidth" : 164, 
     "height" : 205 
     }, 
    } 
    } 
]] 

おかげ

答えて

0

読書JSONは非常に簡単です、このJSON文字列のパースを行う必要があると幅のようなiPhoneの内部のすべての値は、URLなどを取得する必要があります:

{}は辞書で、[]が配列であるので、すべてのネストされたコレクション型は辞書です:便宜上

は、タイプエイリアスを宣言します。

typealias JSONDictionary = [String : Any] 

if let image = aObject["image"] as? JSONDictionary, 
    let sizes = image["sizes"] as? JSONDictionary, 
    let xLarge = sizes["XLarge"] as? JSONDictionary, 
    let url = xLarge["url"] as? String { 
     print(url) 
} 

PS:スウィフトでforループをベース醜いCスタイルのインデックスを使用しないでください、これは推奨される方法です:

for aObject in arrJSON as! [JSONDictionary] { 

と、次の行を削除let aObject = ....

+0

返信ありがとう –

1

SwiftyJSONを使用して値を解析し、正常に動作しました。

SwiftyJSONを使用すると、SwiftでJSONデータを扱いやすくなります。例:

let json = JSON(data: dataFromNetworking) 
if let userName = json[0]["user"]["name"].string { 
    //Now you got your value 
}