【问题标题】:How to parse HTML JSON String如何解析 HTML JSON 字符串
【发布时间】:2018-01-14 11:37:13
【问题描述】:

我很难从 Html 字符串中解析 JSON,请建议我更好的解析方法。

<html><head></head><body>{"data":{"type":"success","message":"Thanks for order with XYZ."}}</body></html> 

来自stringByEvaluatingJavaScriptFromString API 的此 Html 字符串响应。

我想从上面的字符串中解析“类型”和“消息”。我没有从rangeOfString API 得到预期的结果。

提前致谢。

【问题讨论】:

  • 首先去掉&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;,然后在其余部分使用NSJSONSerialization
  • 澄清你的最后一句话。你在说rangeOfString 有什么用?使用显示您正在做什么的实际代码更新您的问题,并清楚地指出您遇到的问题。

标签: objective-c webview


【解决方案1】:

假设你需要它作为 Obj-C 中的字典:

NSString * html = @"<html><head></head><body>{\"data\":{\"type\":\"success\",\"message\":\"Thanks for order with XYZ.\"}}</body></html>";
NSData * data = [html dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString * attributedString = [[NSAttributedString alloc] initWithHTML:data documentAttributes:nil];
NSData * jsonData = [attributedString.string dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary * result = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
NSLog(@"Output %@",result);

【讨论】:

  • 这确实效率低下,但有点聪明。
  • 嗯,最低效的部分是,JSON 似乎无缘无故地被包装到了 html 中。你也可以使用 NSScanner 来提取 body。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多