将查询字符串解析为结构化NSDictionary

时间:2009-10-26 19:34:21

标签: iphone objective-c cocoa nsstring nsdictionary

我有一个查询字符串:a=1&b=2&c[1]=3&c[2]=4等...

我想要一个NSDictionary a => 1b => 2, c => [3,4]。请注意,c的值是一个数组。它还应该能够处理类似c[1][2]=5的内容来创建数组c => [[5]]

当然我可以通过拆分&=来自己完成,但是其他情况如数组和数组数组呢。我想从POST请求queryString中获取 结构化 NSDictionary,并且如果已经存在,则不想重写轮。

是否有通过Apple或第三方将查询字符串解析为结构化NSDictionary的类/方法?

2 个答案:

答案 0 :(得分:6)

Google Toolbox for MacNSDictionary上包含GTMNSDictionaryURLArgumentsAdditions类别,可以执行您想要的操作。

如果您可以控制查询字符串(在客户端),您可以发送编码的plist,可以将其直接解码为NSDictionary

答案 1 :(得分:1)

在这种情况下可能有些过分,但ParseKit是一个用Cocoa编写的开源标记化/解析工具包,用于Cocoa应用程序:

http://parsekit.com

你可能会感兴趣。

ParseKit完全分为两个组件:Tokenizer,然后是构建在其上的高级解析工具包。您可以使用这些组件中的任何一个或两个来帮助完成此类任务。但同样,ParseKit对于这个相对简单的解析任务可能有点过分。