使用iOS从使用PHP序列化的文本字符串反序列化关联数组?

时间:2013-06-19 17:09:43

标签: php mysql ios objective-c sqlite

我正在构建一个Web应用程序,它将我的网站数据库解析为xml文件,以便将其上传到iOS应用程序。我在我的网站数据库中使用MySQL,在iOS应用程序中使用SQLite。看起来很简单,除了MySQL表中的一些列是通过使用php序列化关联数组创建的文本条目。

例如,数组看起来像这样:

(
   "images" => ("png" => 1, "jpg" => 1), 
   "videos" => ("mp4" => 3, "m4v" => 3)
)

使用php序列化数组后 - 序列化($ array); - 输入表条目的文本文件如下所示:

a:2:{s:6:"images";a:2:{s:3:"png";i:1;s:3:"jpg";i:1;}s:6:"videos";a:2:{s:3:"mp4";i:3;s:3:"m4v";i:3;}}

对于我的网站应用程序,我只使用php函数unserialze($ array);为了使用数组。

有没有办法在iOS上执行此操作? iOS 反序列化字符串是否可以像PHP对关联数组一样创建NSDictionary对象?

1 个答案:

答案 0 :(得分:2)

iOS没有为PHP的序列化格式提供反序列化方法。相反,您应该使用JSON作为序列化格式。在PHP中,您需要json_encode(),而在Objective-C中,您使用NSJSONSerialization