-2

WebからJSONRESTサービスを利用しています。その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>"
}]

「content」プロパティのコードを使用して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);
}

(コンテンツ内の相対リンクを機能させたい場合は、nil の代わりに baseURL に適切なものを渡します。)

于 2013-03-18T02:33:47.827 に答える