【问题标题】:Xcode: load json link in webviewXcode:在 webview 中加载 json 链接
【发布时间】:2012-11-14 08:37:08
【问题描述】:

我想在 web 视图中从我的 Json 数据库加载一个链接。但我不知道我该怎么做。

这是我的 json 中的一部分:

{
    "ID": "6173",
    "Name": "Heuriger Christine Haller",
    "BeschreibungApp": "Heuriger Christine Haller, 2102 Bisamberg",
    "Link": "http://heurigenapp.nocache.gugler.at/app.php?id=6173",
    "Icon": "Weintraube",
    "Latitude": "48.33284",
    "Longitude": "16.36383",
    "Altitude": "0",
    "Ort": "Bisamberg"
}

我想在 web 视图中打开“链接”。

【问题讨论】:

    标签: iphone xcode json webview


    【解决方案1】:

    使用 json-framework 之类的解析器来解析接收到的 json。然后您就可以轻松从中提取所需的项目了。

    代码将是这样的:

    SBJsonParser* parser = [[[SBJsonParser alloc] init] autorelease];
    NSDictionary* dict = [parser objectWithString:jsonString];
    NSString* url = [dict objectForKey:@"Link"];
    

    现在您可以使用 NSString url 在 web 视图中加载内容。

    编辑:

    您可以更好地使用 ios5 的 json 序列化。检查这个 tut:http://www.raywenderlich.com/5492/working-with-json-in-ios-5

    【讨论】:

    • 没有json-framework也可以吗?因为我在另一篇文章中读到,当我使用 ios 5 时,使用 json-serialisation 会更容易
    • 哦,是的!忘记那个新功能。我刚刚编辑了答案
    【解决方案2】:

    您可以使用 Mac OS >10.7 和 iOS >5 中包含的 NSJSONSecialization 类。 从您的示例中获取链接的代码如下所示:

    NSString* jsonString = @"your json as a string";
    NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary* jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:NULL];
    NSString* link = [jsonDict objectForKey:@"Link"];
    NSURL* linkUrl = [NSURL URLWithString:link];
    

    【讨论】:

    • 完美这就是我一直在寻找的!但是你能帮我如何在我的网络视图中给出这个吗?
    • AFAIK 你需要用你的数据创建一个 HTML 文件,将该文件保存到磁盘,然后将文件的 URL 传递给 webview。但是,创建 HTML 文件独立于解析 JSON。谷歌给了我这个 webviews 教程,但你也很容易找到其他人:iphonesdkarticles.com/2008/08/uiwebview-tutorial.html 另外,如果这是你正在寻找的答案,你应该接受它:-)
    • NSString* jsonString = @"我的 json 字符串"; NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary* jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData 选项:0 错误:NULL]; NSString* 链接 = [jsonDict objectForKey:@"Link"]; NSURL* url = [NSURL URLWithString:link]; //URL 请求对象 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; //在UIWebView中加载请求。 [webView loadRequest:requestObj];
    • 这是我的代码。但肯定有错误它不起作用。
    • 您需要将'@"my json string"'替换为字符串格式的真实json数据。或者,如果您以二进制格式获取 json 数据,则可以直接使用 NSData 对象。如果遇到错误,还可以打印接收到的 JSON 和生成的 Dictionary NSLog(@"parsed jsonDict: %@", jsonDict)
    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 2012-09-15
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多