Objective-C中的JSON解析

我已经完成了有关iOS中JSON的Raywenderlich教程,但是我很难将其调整为适合自己的JSON文件。这是 :

{

"Albumvideo":[

{

"titre": "Publicité",

"photo":"blabla.jpg"

},

{

"titre": "Events",

"photo":"blabla.jpg"

}

]

}

这是 :

- (void) viewDidLoad

{

[super viewDidLoad];

dispatch_async (kBgQueue, ^{

NSData* data = [NSData dataWithContentsOfURL:lienAlbumsVideo];

[self performSelectorOnMainThread:@selector(fetchedData:)withObject:data waitUntilDone:YES];

});

}

- (void)fetchedData:(NSData *)responseData {

NSError* error;

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

NSArray* albumsvideo = [json objectForKey:@"titre"];

NSLog(@"Album: %@", albumsvideo);

}

日志返回null

回答:

你这样做是不对的。您已json正确将JSON数据填充到字典(名为)中。但你有一个Array of

Dictionaries(被称为Albumvideo你的主要内部)Dictionary和价值的titre是内部Albumvideo数组。

NSError* error;

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

NSArray* albumsvideo = [json objectForKey:@"Albumvideo"];

NSString *titre1 = [[albumsvideo objectAtIndex:0]valueForKey:@"titre"];

NSString *titre2 = [[albumsvideo objectAtIndex:1]valueForKey:@"titre"];

了解概念。这取决于你的内心里有什么JSON。如果它是一个数组(在Values内部[

]),则必须保存在其中NSArray;如果它是一个字典(在Values内部{

}),则另存为NSDictionary;如果您有单个值(如string,integer),则将double值保存,则必须使用适当的Objective-

C数据进行保存类型。

希望您对 有一些正确的想法。

以上是 Objective-C中的JSON解析 的全部内容, 来源链接: utcz.com/qa/417827.html

回到顶部