从php文件接收数据,格式如下:
{"object:value", "object2:value2"...}
{"object:value", "object2:value2"...}
我知道如何解析这在Swift2使用下一个代码反复改变separatedBy字符串:
if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) {
let strResult = NSString(data: data, encoding: NSUTF8StringEncoding)
}
tareas = strResult!.componentsSeparatedByString(",")
但是我想更容易地解析它。我读过其他问题和答案,但要解析的格式是:
[
{"person": {"name":"Dani","age":"24"}},
{"person": {"name":"ray","age":"70"}}
]
我的数据是不同的。我怎样才能更容易地做到这一点?
谢谢!
你可以像这样读取数组
首先你需要像这样将数据转换成有效的json然后访问它
var result: NSArray = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray
println("result: '(result)")
。
var str = "[{'"person'": {'"name'":'"Dani'",'"age'":'"24'"}},{'"person'": {'"name'":'"ray'",'"age'":'"70'"}}]"
var data : NSData = str.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
var result: NSArray = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray
println("Response: '(result)")
println("Oth Object: '(result[0])")
Response: (
{
person = {
age = 24;
name = Dani;
};
},
{
person = {
age = 70;
name = ray;
};
}
)
Oth Object: {
person = {
age = 24;
name = Dani;
};
}
我建议你使用SwiftyJSON (6k+ stars)库将响应转换为JSON
对象。比如:
if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) {
let json = JSON(data: data!)
}
之后,您可以轻松地从JSON
中提取任何信息:
for item:JSON in json.arrayValue{
let person = item["person"].dictionaryValue
//...
}
操场屏幕截图