2016-08-10 9 views
0

私は小さなアプリケーションを持っていて、ボタンの1つでオンラインからJSONファイルを取得して結果を出力しますが、印刷するのではなく、どうやってJSON結果を利用できますか? JSON全体を印刷するには、JSON ["data"] [1]などの値のうちの1つだけを出力したいと思います。swiftで特定のJSON値を取得する

@IBAction func approveuser(sender: AnyObject) { 
     let postEndpoint: String = "https://example.com/example.json" 
     let url = NSURL(string: postEndpoint)! 
     let session = NSURLSession.sharedSession() 
     let postParams : [String: AnyObject] = ["UUID": UIDevice.currentDevice().identifierForVendor!.UUIDString, "requested": place] 
     let request = NSMutableURLRequest(URL: url) 
     request.HTTPMethod = "POST" //can be changed. 
     request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") 
     do { 
      request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(postParams, options: NSJSONWritingOptions()) 
      print(postParams) 
     } catch { 
      print("bad things happened") 
     } 
     session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in 
      guard let realResponse = response as? NSHTTPURLResponse where 
       realResponse.statusCode == 200 else { 
        print("Not a 200 response") 
        return 
      } 



      // Read the JSON 
      if let postString = NSString(data:data!, encoding: NSUTF8StringEncoding) as? String { 
       print("POST: " + postString) 
       // 
      } 
     }).resume() 

    } 

答えて

0

JSONの値はそのキーを介して検索されています

は、ここに私のコードです。それが配列であろうとオブジェクトであろうと。 jsonは、複数の他のjsonオブジェクトまたはjson配列を含むことができます。独自のカスタムクラスを使用して値を取得できます。これを実装するには、codeをご覧ください。
また、iOSではSwiftyJSONを使用して、あまりブレインストーミングしないで値を取得することもできます。 「dataFromNetworkingは」あなたのNSDataある

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

はURLから読み込まれ、上記のようなJSONが含まれています:としてあなたがコーディングすることができ、このために

{ {"user": { 
     "name": "..." 
     } 
    }, 
    {"address": "..." 
    } 
} 

- としてSwiftyJSONを使用してたとえば、あなたが行うことができます。

このように、jsonから値を取得することができます。 SwiftyJSONの詳細については、linkをご覧ください。

+0

私はこのコードをしようとすると、それは私のエラー」使用を与えます未確認リゾルバ "JSON" ' – Matt

+0

ポッドは含まれていますか?あなたがココアポッドやカートハージを使ってSwiftyJSONを統合しない限り、動作しません。 –

0

ここでは、JSONのデータをretreivingの例があります。

JSON形式:

[ 
    { 
    "person": { 
     "name": "Rob", 
     "age": "4" 
    } 
    }, 
    { 
    "person": { 
     "name": "joe", 
     "age": "73" 
    } 
    } 
] 

関連のコード:

var json: Array!  
do { 
     json = try NSJSONSerialization.JSONObjectWithData(JSONData, options: NSJSONReadingOptions()) as? Array 
    } catch { 
     print(error) 
    } 

    if let item = json[0] as? [String: AnyObject] { 
     if let person = item["person"] as? [String: AnyObject] { 
     if let age = person["age"] as? Int { 
      print("Rob's age is \(age)") 
     } 
     } 
    } 
関連する問題