将HTTP响应(Java“属性”流格式)转换为NSDictionary

时间:2010-05-17 16:34:07

标签: java iphone httpwebrequest nsdictionary

我正在开发包含HTTP请求和响应的iphone应用程序。

响应的格式是与Java“属性”流格式兼容的键/值格式。

我想将响应存储到NSDictionay中。你能建议我这样做吗?

谢谢。

sangee

编辑:

感谢guyz快速回复!!!

是他们在NSSdictionay中存储它们的任何其他方法吗?

我只想将相册名称和描述存储在如下数组中:

mutablearray = [wrwr, dsf, my album];
如果可能或不可以,请你告诉我吗?

再次感谢!!!

这是我的HTTP请求得到的响应......

GR2PROTO
debug_album= debug_gallery_version= debug_user=admin debug_user_type=Gallery_User debug_user_already_logged_in= server_version=2.12 status=0 status_text=Login successful.

#GR2PROTO debug_album= debug_gallery_version= debug_user=admin debug_user_type=Gallery_User debug_user_already_logged_in=1

album.name.1=wrwr album.title.1=wrwr album.summary.1= album.parent.1=0 album.resize_size.1=640 album.thumb_size.1=100 album.perms.add.1=true album.perms.write.1=true album.perms.del_item.1=true album.perms.del_alb.1=true album.perms.create_sub.1=true album.info.extrafields.1=Description

album.name.2=dsf album.title.2=dsf album.summary.2= album.parent.2=0 album.resize_size.2=640 album.thumb_size.2=100 album.perms.add.2=true album.perms.write.2=true album.perms.del_item.2=true album.perms.del_alb.2=true album.perms.create_sub.2=true album.info.extrafields.2=Description

album.name.3=my album album.title.3=my album album.summary.3= album.parent.3=0 album.resize_size.3=640 album.thumb_size.3=100 album.perms.add.3=true album.perms.write.3=true album.perms.del_item.3=true album.perms.del_alb.3=true album.perms.create_sub.3=true album.info.extrafields.3=Description

2 个答案:

答案 0 :(得分:2)

如果可以,我建议将数据序列化为JSON(或XML,如果必须),并使用TouchJSON或类似的解析器进行解析。如果你真的不能,那么你将不得不实现自己的解析器 - 看看NSScanner

答案 1 :(得分:0)

查看NSStream和Stream Programming Guide for Cocoa

在Java完全集成到Cocoa的那一天,NSStream映射到Java流。它仍然可能。 IIRC,(已经有一段时间了)NSStream将从Java流中返回一个正确填充的NSDictionary。

编辑:

看起来返回的文本只是一个空格分隔的哈希,它是字典的Java版本。它采用key = value space key = value的形式。唯一棘手的部分是一些哈希是嵌套的。

例如,第一行是嵌套的:

debug_album{ 
    debug_gallery_version{
        debug_user=admin 
        debug_user_type=Gallery_User 
        debug_user_already_logged_in{
            server_version=2.12
            status=0 
            status_text=Login successful.
        }
    }
}

你需要一个递归扫描程序来解析它。 “key = space”模式表示嵌套字典。