我有一个小应用程序,在其中一个按钮中,它从在线检索JSON文件并打印结果,但是我如何利用JSON结果,而不是必须打印以打印整个JSON,我想只打印其中一个值,例如JSON [“data”] [1]。
这是我的代码:
@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 :(得分:0)
通过其密钥检索JSON值。无论是数组还是仅仅是对象。 json可以包含多个其他json对象或json数组。您可以使用自己的自定义类来检索值。要实现这一点,您可以查看此code以了解 或者在iOS中,您可以使用SwiftyJSON来检索您的头脑风暴中的值。例如,使用SwiftyJSON,你可以做 -
{ {"user": {
"name": "..."
}
},
{"address": "..."
}
}
为此,您可以编码为:
let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
//Now you got your value
}
where' dataFromNetworking'是您从网址读取的NSData,包含如上所述的json。
像这样,你可以从json中检索值。要了解有关SwiftyJSON的更多信息,请转到此link。
答案 1 :(得分:0)
这里有一个从json中检索数据的例子:
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)")
}
}
}