2017-01-04 8 views
1

私は迅速に働いています3.私は新しいです。 「名前」と私は配列に追加したい、その値:私は、私は唯一のキー値をしたいAlsonofireを使用してJsonを迅速に解析する

My jsonVlaue is : { 
    data =  (
       { 
      Password = "@1234"; 
      UserName = "<null>"; 
      "___class" = OrderTable; 
      "__meta" = "{\"relationRemovalIds\":{},\"selectedProperties\":[\"UserName\",\"created\",\"name\",\"___class\",\"ownerId\",\"updated\",\"objectId\",\"Password\"],\"relatedObjects\":{}}"; 
      created = 1483525854000; 
      name = TestMan; 
      objectId = "4316DEBA-78C1-C7BD-FFBC-3CB77D747F00"; 
      ownerId = "<null>"; 
      updated = "<null>"; 
     }, 
       { 
      Password = 123; 
      UserName = "<null>"; 
      "___class" = OrderTable; 
      "__meta" = "{\"relationRemovalIds\":{},\"selectedProperties\":[\"UserName\",\"created\",\"name\",\"___class\",\"ownerId\",\"updated\",\"objectId\",\"Password\"],\"relatedObjects\":{}}"; 
      created = 1483516868000; 
      name = tommy; 
      objectId = "29155114-C00B-5E1C-FF6F-7C828C635200"; 
      ownerId = "<null>"; 
      updated = "<null>"; 
     }....... 

のようなJSONデータを解析しようとしています。

私はそのようにしようとしましたが、私のアプリはクラッシュしています。私のコードは以下の通りです。

func getLoginDetails() 
    { 
     //https://api.backendless.com/<version>/data/<table-name>/properties 

     Alamofire.request(HeadersClass.api.domainName + "OrderTable", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: HeadersClass.allHeaders.headers).responseJSON { response in 
      //debugPrint(response) 
      if let jsonDict = response.result.value as? NSDictionary { 
       print("My jsonVlaue is : \(jsonDict)") 

       let arrayPracticeData: NSArray = jsonDict.value(forKey: "name") as! NSArray 

        print(arrayPracticeData) 


      } 

     } 
} 

誰でもこの問題を解決する方法を教えてください。前もって感謝します。

答えて

7

まずスウィフトのネイティブ配列でNSDictionaryNSArrayの代わりにDictionaryを使用します。

ここで名前を取得するには、の配列をJSONの応答Dictionaryから取得する必要があります。だからこのようなものを試してみてください。

Alamofire.request(HeadersClass.api.domainName + "OrderTable", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: HeadersClass.allHeaders.headers).responseJSON { response in 

    //debugPrint(response) 
    if let jsonDict = response.result.value as? [String:Any], 
     let dataArray = jsonDict["data"] as? [[String:Any]] { 
      let nameArray = dataArray.flatMap { $0["name"] as? String } 
      print(nameArray) 
    } 
} 

出力

["TestMan", "tommy", ...] 
+0

はありがとうございました。それは正常に動作しています。 –

+0

@hrithibようこそメイト:) –

関連する問題