-2

我正在使用来自网络的 JSON 休息服务。JSON 有一个名为“content”的属性,它是一个 HTML 内容,所以 JSON 文件类似于:

[{
"id":"4205",
"title":"SomeTitle",
"author":"Homero Simpson",
"content":"<html><head></head><body>Había una vez un molinero cuya única herencia para sus tres hijos eran su molino, su <a href='biblioSonidos://soundID=67'>asno</a> y su <a href='biblioSonidos://soundID=69'>gato</a>. Pronto se hizo la repartición sin necesitar de un clérigo ni de un abogado, pues ya habían consumido todo el pobre patrimonio. Al mayor le tocó el molino, al segundo el asno, y al menor el gato que quedaba. El pobre joven amigo estaba bien inconforme por haber recibido tan poquito. 'Mis hermanos' dijo él, 'pueden hacer una bonita vida juntando sus bienes, pero por mi parte, después de haberme comido al gato, y hacer unas sandalias con su piel, entonces no me quedará más que morir de hambre.'  El gato, que oyó todo eso, pero no lo tomaba así, le dijo en un tono firme y serio: 'No te preocupes tanto, mi buen amo. Si me das un bolso, y me tienes un par de botas para mí, con las que yo pueda atravesar lodos y zarzales, entonces verás que no eres tan pobre conmigo como te lo imaginas.'</body></html>"
}]

我需要使用“内容”属性中的代码创建一个 WebView。所以,我的问题是:如何从这个 JSON 属性设置 WebView 内容?那可能吗?

4

1 回答 1

1

使用 JSONSerialization 将 JSON 文件转换为基础对象(将是 NSDictionary)。然后使用 loadHTMLString 加载内容键的值:

NSError *jsonError = nil;
id json = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:pathToTheJSONFile] options:0 error:&jsonError];
if (json) {
    [webView loadHTMLString:[(NSDictionary *)json objectForKey:@"content"] baseURL:nil];
} else {
    NSLog(@"Error loading JSON: %@", jsonError);
}

(如果您希望内容中的相对链接起作用,则传递适合 baseURL 而不是 nil 的任何内容。)

于 2013-03-18T02:33:47.827 回答