Nic*_*hem 1 iphone json objective-c ios
我在iOS中完成了关于JSON的Raywenderlich教程,但是我很难将它改编为我自己的JSON文件.这是我的JSON:
{
"Albumvideo":[
{
"titre": "Publicité",
"photo":"blabla.jpg"
},
{
"titre": "Events",
"photo":"blabla.jpg"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
- (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);
}
Run Code Online (Sandbox Code Playgroud)
日志返回null.
Bha*_*vin 11
你做错了.您已json正确填写词典(已命名)中的JSON数据.但是你的Main中有一个Array of Dictionaries(被叫Albumvideo),Dictionary而且titre在AlbumvideoArray 里面有值.
正确的代码是:
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"];
Run Code Online (Sandbox Code Playgroud)
理解概念.这取决于你的内心JSON.如果它是一个数组(里面的值[ ]),那么你必须保存NSArray,如果它是一个字典(里面的值{ })然后另存为NSDictionary,如果你有单个值,如字符串,整数,双,那么你必须使用适当的Objective-C数据保存它们类型.
希望你对JSON解析有一些正确的认识.
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |