-1

我在 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”并对其进行解析。

4

1 回答 1

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];
于 2013-02-27T18:53:32.747 回答