0

这是一个例子

{
"updated":1350213484,
"id":"http://www.google.com/reader/api/0/feed-finder?q\u003dProva\u0026output\u003djson",
"title":"Risultati di feed per \"Prova\"",
"self":[
{
"href":"http://www.google.com/reader/api/0/feed-finder?q\u003dProva\u0026output\u003djson"
}
],
"items":[
{
"title":"Home Page - La prova del cuoco",
"id":"http://www.laprovadelcuoco.rai.it/",
"updated":1350213485,
"feed":[
{
"href":"http://www.laprovadelcuoco.rai.it/dl/portali/site/page/Page-ffb545b4-9e72-41e5-866f-a465588c43fa-rss.html"
}
],
"alternate":[
{
"href":"http://www.laprovadelcuoco.rai.it/",
"type":"text/html"
}
],
"content":{
"direction":"ltr",
"content":"Diventa un cuoco provetto con “La Prova del Cuoco”: le videoricette in un' applicazione di facile e veloce consultazione per il tuo Iphone. Scopri come acquistare ..."
}
},
{
"title":"Le prove Invalsi di matematica e italiano",
"id":"http://online.scuola.zanichelli.it/quartaprova/",
"updated":1350213486,
"feed":[
{
"href":"http://online.scuola.zanichelli.it/quartaprova/feed/"
}
],
"alternate":[
{
"href":"http://online.scuola.zanichelli.it/quartaprova/",
"type":"text/html"
}
],
"content":{
"direction":"ltr",
"content":"Un sito Zanichelli dedicato alle prove Invalsi di italiano e matematica: esercitazioni, consigli, informazioni utili, novità, aggiornamenti e blog d'autore sulle prove ..."
}
},

如何获取提要 URL?

我就是做这个的

NSString *daParsare=[reader searchFeed:searchText];



NSArray *items = [[daParsare JSONValue] objectForKey:@"items"];

for (NSDictionary *item in items) {



    NSString *title = [item objectForKey:@"title"];
    NSString *feed = [item valueForKeyPath:@"feed.href"];


}
[tab reloadData];

标题一切正常,但是当我尝试访问提要参数时,我得到了错误......

4

2 回答 2

1

假设您的 JSON 对象名为jsonObject,您只需访问该href元素。因此,在您当前的对象中,URL 位于名为 的对象中,该对象是位于顶层href的数组中的第一个(在本例中也是唯一的)元素:feed

NSString* urlString = jsonObject[@"feed"][0][@"href"];

在访问其中一个元素之前,您应该检查以确保feed它不是一个空数组(如果存在)。

于 2012-10-14T14:40:15.223 回答
0
NSString *feed = [item valueForKeyPath:@"feed.href"];

是错误的,因为feed指的是一个数组,它又保存了一个字典。

NSString *feed = [[[item objectForKey:@"feed"] objectAtIndex:0] objectForKey:@"href"];

如果您使用的是现代 Xcode,那么最后一行与 Jason Cocos 的答案相同。

NSString* feed = item[@"feed"][0][@"href"];

这种语法称为对象订阅

于 2012-10-14T15:22:37.580 回答