2015-11-10 66 views
-1

我想用結構解析JSON並命名它。(Swift)如何解析與結構的JSON?

這裏是JSON數據:

{ 
"sgList": [ 
    { 
     "ID": 11113, 
     "Name": "soss", 
     "Price": "10.0000", 
     "BigImagesUrl": "http://192.165.1.19:886/img/1/2015/7/11/20157111429315728.png", 
     "SmallImagesUrl": "http://192.165.1.19:886/img/1/2015/7/11/20157111429315728.png" 
    }, 
    { 
     "ID": 11958, 
     "Name": "1017p-02", 
     "Price": "0.0000", 
     "BigImagesUrl": "http://192.165.1.13:886/img/rar-upload/f82f22ce-4a33-4ba2-a31d-4bae473f5d48/pics/797_1.jpg", 
     "SmallImagesUrl": "http://192.165.1.13:886/img/rar-upload/f82f22ce-4a33-4ba2-a31d-4bae473f5d48/pics/797_1-[135-135].jpg" 
    } 
] 
} 

我在這上面花時間和什麼也沒得到! 請幫助我,非常感謝!

+0

嘗試使用此:https://github.com/SwiftyJSON/SwiftyJSON它使用起來非常簡單 –

回答

1

如果你不想要第三方庫並自己做,這很容易。 假設你的JSON字符串是一個變量,名爲jsonString

let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding)! 
let json = try! NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 

然後你就可以通過subsript訪問您的數據。例如,如果你希望第二個對象的名稱sgList

json["sgList"][1]["Name"] 
0

你可以做這樣的事情使用SwiftyJSON

import SwiftyJSON 

struct SqList { 
    let sqList: Array<SqElement> 

    init(json: JSON) { 
     let sqArray = json["sqList"].arrayValue.flatMap { SqElement(json: $0) } 
     self.sqList = sqArray 
    } 
} 

struct SqElement { 
    let id: String 
    let name: String 
    let price: String 
    let bigImagesUrl: String 
    let smallImagesUrl: String 

    init?(json: JSON) { 
     guard 
      let id = json["ID"].string, 
      let name = json["Name"].string, 
      let price = json["Price"].string, 
      let bigImagesUrl = json["BigImagesUrl"].string, 
      let smallImagesUrl = json["SmallImagesUrl"].string 
     else { return nil } 

     self.id = id 
     self.name = name 
     self.price = price 
     self.bigImagesUrl = bigImagesUrl 
     self.smallImagesUrl = smallImagesUrl 
    } 
} 

在代碼中,您只要致電:

let sqList = SqList(json: JSON(data: dataWithJSON))