2017-02-08 4 views
0

私は持っている車両のデータセグメントでJsonを持っています。Swift 3 - Jsonレスポンスを管理する方法

{ 
    "status": 200, 
    "data": [ 
    { 
     "brand": "chevrolet", 
     "model": "aveo", 
     "version": "2012" 
    }, 
    { 
     "brand": "Toyota", 
     "model": "Avalon", 
     "version": "2010" 
    } 
    ], 
    "benchmark": { 
    "tiempo": "~0.1453 ms", 
    "memoria": "2.1 MB" 
    } 
} 

私は応答を取得すると、それは次のコードで操作されています:

var json: [String:Any] = [:] 
let responseString = String(data: data, encoding: .utf8) 
      do { 
       let datos = responseString?.data(using: .utf8) 
       json = try JSONSerialization.jsonObject(with: datos!, options: []) as! [String:Any]  
       status = json["estado"] as! Int 
     } catch { 
      print("error serializing JSON: \(error)") 
     } 

私の問題がある: これはその一例である私は、「データ」を操作しようとすると、私はそれを行う方法を知りません、ちょうどjson ["data"]がAnyオブジェクトであることを知っています。

本当にありがとうございます。

ありがとうございます。

+4

https://developer.apple.com/swift/blog/?id=37 – Koen

+1

またはhttps://github.com/SwiftyJSON/SwiftyJSON – sasquatch

+0

ここから始めましょう。まず、あなたは 'data'を持っています。それらを文字列に変換してから、データに戻します。 * JSONデータを文字列に変換しないでください。 'JSONSerialization.jsonObject(with:data、options:[])'が動作します。 – Sulthan

答えて

0

ない最善の解決策が、私の仕事:あなたの助けのための

  let data = json["data"] as! [Any] 
      for datos in data { 
       var literal = datos as! [String:String] 
       print(literal["version"]!) 
       print(literal["model"]!) 
      } 

おかげで多くのことを。

0

あなたはSwiftyJSONを使用するのが簡単ですし、jsonを処理するのに最適な素早いライブラリの1つです。あなたのコードではほとんど例https://github.com/SwiftyJSON/SwiftyJSON

を:ここでそれをチェックアウト

var carsData = [] 
var status: Int 

let json = JSON(data: data) 

guard json != nil else { 
    print("JSON is nil") 
    return 
} 

status = json["status"].int 

//print the first car model 
print(json["data"][0]["model"].string) 

これはテストされていない例であり、SwiftyJSON GitHubのREADMEを確認してください。

+0

今はライブラリを使用することはできませんが、自分のプロジェクトで使用します。どうもありがとう – LagMaster

関連する問題