使用iOS 5在iPhone中消费JSON数据



如何在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数据是包含NSDictionaryNSArrayNSStringNSNumber等实例的NSDictionaryNSArray实例。

从您的示例数据来看,您的数据似乎嵌套严重。(目的不太清楚。)它是一个包含字典的数组,包含一个包含词典的数组。

你可以这样访问它:

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非常方便,格式非常像苹果的类引用。

最新更新