如何在iOS 5 中使用此JSon数据
({assets = ( { identity = 34DL3611;}, {identity = 34GF0512;}, {identity = 34HH1734;}, {identity = 34HH1736;}, {identity = 34YCJ15;} );
identity = DEMO;})
通过这个调用在控制台上获取这些数据
id list =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSLog(@"VLIST: %@", list);
现在,在使用编码后,我已经获得了确切的JSON格式的数据:NSUTF8StringEncoding,我想使用iOS 5 的原生jsonserializer
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
JSON数据为:
[{"assets":[{"identity":"34DL3611"},{"identity":"34GF0512"},{"identity":"34HH1734"},{"identity":"34HH1736"},{"identity":"34YCJ15"}],"identity":"DEMO"}]
现在,我如何获得这些数据,以便获得资产数组值并将其填充到表中,并获得标识的值(即DEMO)以将其用作标头。
乙醇
您似乎能够成功解析JSON数据,现在想知道如何访问数据。解析的JSON数据是包含NSDictionary
、NSArray
、NSString
、NSNumber
等实例的NSDictionary
或NSArray
实例。
从您的示例数据来看,您的数据似乎嵌套严重。(目的不太清楚。)它是一个包含字典的数组,包含一个包含词典的数组。
你可以这样访问它:
NSArray list =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSDictionary dict = [list objectAtIndex: 0];
NSArray assets = [dict objectForKey: @"assets"];
NSString identity = [dict objectForKey: @"identity"];
for (NSUInteger index = 0; index < [assets count]; index++) {
NSDictionary itemDict = [assets objectAtIndex: index];
NSString itemIdentity = [itemDict objectForKey: @"identity"];
}
JSONKit具有更好的性能,并且非常容易添加到您的项目中(2个文件)并且易于使用。
NSDictionary *dict = [myJsonString objectFromJSONString];
当我处理json数据时,我总是通过在线json格式化程序、解析器和验证器来运行它。这让我知道json是有效的,并提高了我对数据的理解。
SBJson是另一个需要考虑的选项。
SBJsonParser* parser = [[SBJsonParser alloc] init];
NSDictionary* dict = [parser objectFromString:jsonString];
[parser release];
它的API非常方便,格式非常像苹果的类引用。