2016-08-02 8 views
0

Webサービスへの呼び出しの結果からUITableViewを生成しようとしています。データは、最初の部分は、ヘッダとして12の値によって形成した後、ログは各ヘッダの値のアレイを形成するようにキーが存在しないWebサービスからJSONデータを解析すると、データが返されません

[{"name":"CONTROL TEST", 
"nc_lead":"TOM SMITH", 
"datastr":"N/A", 
"username":"tsmith", 
"status":"REOPENED", 
"orderno":"00000000", 
"ccsText":"000", 
"risk":0, 
"dateTimeCreated":"2016-01-29 13:16:50", 
"supplyStart":"2016-02-08T11:51:00+0000", 
"supplyEnd":"2016-02-08T12:03:00+0000", 
"logs": 
    [{"dateTime":"2016-02-02 11:26:18", 
    "statusChangeDateTime":"2016-02-02 00:00:00", 
    "user":"tsmith", 
    "uid":1, 
    "task":"TESTING", 
    "info":"state changed to 'Y'", 
    "x":456123, 
    "y":362514, 
    "id_log":28294}, 
    {“dateTime":"2016-02-02 10:54:34", 
     "statusChangeDateTime":"2016-02-02 10:54:00", 
    "user":"tsmith", 
    "uid":1, 
    "task":"TESTING", 
    "info":"T Smith changed area.", 
    "x":452356, 
    "y":325489, 
    "id_log":28291 
    },..... 

以下のようにJSON形式で返されます。以下のコードを使用してJSONオブジェクトを返し、Webサービス呼び出しからデータオブジェクトを解析します。

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

私は、「私は「名前」の値を抽出するために、以下のコードなどのコードを使用して試してみたが、それはdoesnの

let str = NSString(data: data!, encoding: NSUTF8StringEncoding) 

下のコードを使用して、データの戻り値を見ることができます

if let name = json["name"] as? [[String: AnyObject]] {} 

ヘッダーとログ配列からデータを取得するためにjsonオブジェクトを反復処理する方法はありますか。

+1

あなたのjsonは辞書の配列であり、 "name"は文字列です –

+0

json [0] ["name"]を試してください –

+0

この行で何を得るか: 'let json = try NSJSONSerialization.JSONObjectWithData(data!、options:.AllowFragments ) '? 'josn'を印刷しましたか? – Lion

答えて

1

あなたがこのような何かする必要がありますので、jsonオブジェクトは辞書の配列であるようだ。

if let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) as? Array<Dictionary<String, AnyObject>> { 
    for item in json { 
     if let dict = item as? Dictionary<String, AnyObject> { 
      print(dict["name"]) 
     } 
    } 
} 

を時々値がたとえばdict["name"] == "CONTROL TEST"のためのように、Stringですが、dict["logs"]があるため、変換はAnyObjectにする必要がありますArray<Dictionary<String, String>>。あなた見えますか?

+0

Anydataとは何ですか? – user616076

+1

申し訳ありませんが、私は 'AnyObject'を意味しました。 –

+0

それはあなたに感謝してくれた – user616076

関連する問題