如何在Swift中解析从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

我从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)")

输出

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
    //...
}