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