如何在Swift中解析从php接收的数据编码?
我从php文件接收以下格式的数据:如何在Swift中解析从php接收的数据编码?,php,ios,swift,swift2,Php,Ios,Swift,Swift2,我从php文件接收以下格式的数据: {"object:value", "object2:value2"...} {"object:value", "object2:value2"...} 我知道如何在Swift2中使用重复更改separatedBy字符串的下一个代码解析此代码: if let url = NSURL(string: strURL), let data = NSData(contentsOfURL: url) { let strResult = NSStr
{"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)")
前
输出
Response: (
{
person = {
age = 24;
name = Dani;
};
},
{
person = {
age = 70;
name = ray;
};
}
)
Oth Object: {
person = {
age = 24;
name = Dani;
};
}
我建议您使用将响应转换为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
//...
}
我使用了适合Swift2最新版本的代码,如:let jsonResults:NSArray do{jsonResults=try NSJSONSerialization.JSONObjectWithData(数据,选项:NSJSONReadingOptions.MutableContainers)as!NSArray print(“result:(jsonResults)”//success…}将let错误捕获为NSError{//failure print(“Fetch failed:(error.localizedDescription)”)},我得到了这个错误:“Fetch failed:无法读取数据,因为它的格式不正确。”@user3745888请查看我更新的答案。这在我这边是正常的。这可能是由于json无效造成的。因此,请确保您的json是否有效。哦!,所以我的php json格式有一个问题。。。我没有得到ar str=“[{\“person\”:{\“name\”:\“Dani\”,“age\”:“24\”},格式。我得到:ar str=“{”name:“Dani”,“age:“24”},没有person。然后我应该写另一个关于用php正确写入查询结果的问题,以正确发送json…是您从服务器得到的响应->{“name:“Dani”,“age:“24”}??是的,这是我的回答。是“内部联接”mysql查询的数组结果
for item:JSON in json.arrayValue{
let person = item["person"].dictionaryValue
//...
}