0

我是 iphone 和 json 世界的新手。我有这个 json 结构。你可以把它放在这里http://jsonviewer.stack.hu/看清楚。

 {"@uri":"http://localhost:8080/RESTful/resources/prom/","promotion":[{"@uri":"http://localhost:8080/RESTful/resources/prom/1/","descrip":"description
 here","keyid":"1","name":"The first
 name bla bla
 ","url":"http://localhost/10.png"},{"@uri":"http://localhost:8080/RESTful/resources/promo/2/","descrip":"description
here","keyid":"2","name":"hello","url":"http://localhost/11.png"}]}

我想用 json-framework 解析它。我试过这个

 NSDictionary *json    = [myJSON JSONValue];
            NSDictionary *promotionDic    = [json objectForKey:@"promotion"];
            NSLog(@" res %@ : ",[promotionDic objectAtIndex:0]); 

但是,例如,如何获取索引 0 处的对象名称?我想我应该把对象放在 NSArray 中?但我不知道如何:/而且我不知道对象的数量是可变的。请帮忙 。

4

2 回答 2

2

首先,您在加载 JSON 后需要这一行

        NSLog(@" json %@ : ",[json description]); 

那会告诉你你有什么。

其次,您不能在字典上调用 objectAtIndex:。如果它有效,那是因为promotionDict 确实是一个NSArray。(NSLog 会告诉你)。在 Objective-C 中,您可以分配给任何类型的指针,这会让新开发人员感到困惑,但它是语言的一部分,并且确实是一个特性。

使用 NSArray,您可以询问其中的内容数量,[myArray count] 等。您需要在 XCode 中双击命令以打开 NSDictionary 等的文档。

于 2011-05-22T18:21:38.777 回答
0

JSON 说:

..."promotion":[{"@u...

那里的“ [”意味着“促销”是一个数组,而不是字典。

所以真的你的代码应该是:

NSDictionary *json    = [myJSON JSONValue];
NSArray *promotions   = [json objectForKey:@"promotion"];
NSLog(@"res: %@",[promotions objectAtIndex:0]); 
于 2011-05-22T19:09:01.363 回答