1

我已经使用序列化方法在 PHP 中序列化了一个字符串

$serializedResult = serialize($value);

如何在 Objective-C 中反序列化这个序列化的字符串

4

3 回答 3

2

我认为没有针对 Objective C 的序列化 PHP 对象解析器。

但是,您可以改用 JSON。在 PHP 端使用json_encode,在 Objective C 端参见:http ://blog.zachwaugh.com/post/309924609/how-to-use-json-in-cocoaobjective-c

或者正如 Tommy 指出的现在的原生实现:http: //developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html

于 2012-08-27T04:12:52.470 回答
2

我也遇到同样的问题。作为解决方案,我编写了解析器来完成这项工作。它同时具有序列化和反序列化功能。您可以从此链接获取。

这是序列化的测试示例,RTSerializer *serializer=[[RTSerializer alloc]init];

  NSMutableDictionary *pack=[NSMutableDictionary dictionary];
  [pack setValue:@"id" forKey:@"3"];
  [pack setValue:@"tariffid" forKey:@"152"];
  [pack setValue:@"rgid" forKey:@"1"];
  [pack setValue:@"name" forKey:@"Test"];


   NSString *_data=@"";
   _data=[serializer pack inString:_data];

反序列化的例子,

 id object=[serializer deserialize:@"a:1:{i:0;a:4:{s:2:\"id\";s:1:\"3\";s:8:\"tariffid\";s:3:\"152\";s:4:\"rgid\";s:1:\"1\";s:4:\"name\";s:4:\"Test\";}}"];
于 2013-03-21T09:43:07.283 回答
1

不要认为这是可能的。根据 PHP 手动序列化方法应该只在 PHP 脚本中使用。

您应该使用一些开放格式,例如 JSON。或者您可以用两种语言创建自己的“序列化”实现。

于 2012-08-27T04:14:45.497 回答