我在test.html文件中有以下内容
<a href="http://playSound/?arguments=%7B%20soundID%3A%20%E2%80%9CDOG%E2%80%9D%2C%20foreground%3A%20false%2C%20loop%3A%20true%20%7D">SHOULD PLAY DOG IF YOU CLICK ME!</a>
我已经在iOS模拟器上加载了html,我想解析它并让DOG将它传递给我的函数,所以它可以播放DOG,而不需要硬编码。
我该怎么做?我是Objective-C的新手,需要有关代码和编码结构的帮助。
到目前为止,我只将html内容加载到模拟器,我已经使用URL编码从JSON获取此URL。我接下来的步骤是使用NSSerlization来解析“DOG”。
答案 0 :(得分:1)
如果您有URL解码的参数,那么您将拥有一个如下所示的字符串:
{ soundID: “DOG”, foreground: false, loop: true }
假设您将其加载到NSString中,您可以从中获取NSDictionary。
NSString *string = @"{ soundID: “DOG”, foreground: false, loop: true }";
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[string dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
现在,您可以轻松获得SoundID。
NSString *soundID = dictionary[@"soundID"];
编辑:
要检索参数GET变量,假设你有这样的URL:
NSString *url = @"<a href="http://playSound/?arguments=%7B%20soundID%3A%20%E2%80%9CDOG%E2%80%9D%2C%20foreground%3A%20false%2C%20loop%3A%20true%20%7D">SHOULD PLAY DOG IF YOU CLICK ME!</a>";
您可以像这样拆分它并获取URL解码参数以与上面的代码一起使用:
NSArray *urlComps = [url componentsSeparatedByString:@"arguments="];
NSString *arguments = [urlComps[1] componentsSeparatedByString:@"\""][0];
arguments = [arguments stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];