Iphone 解析SBJSON+;语法
我会撒谎用SBJSON解析JSON文件,但我在理解上有点问题? 以下是我的JSON结构:Iphone 解析SBJSON+;语法,iphone,objective-c,json,parsing,Iphone,Objective C,Json,Parsing,我会撒谎用SBJSON解析JSON文件,但我在理解上有点问题? 以下是我的JSON结构: 身份证 正文 日期 例如: [{“id”:“1”,“text”:“blabla”,“date”:“1235432241”},{“id”:“2”,“text”:“blabla2”,“date”:“1235432241”}] 下面是我找到的用SBJSON解析JSON文件的代码: - (void)downloadJSONFile:(NSData *)data { SBJSON *jsonPa
- 身份证
- 正文
- 日期
- (void)downloadJSONFile:(NSData *)data
{
SBJSON *jsonParser = [[[SBJSON alloc] init] autorelease];
NSString *jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
id response = [jsonParser objectWithString:jsonString error:NULL];
NSDictionary *feed = (NSDictionary *)response;
NSArray *nodes = (NSArray *)[feed valueForKey:@"keyValue"]; // here's I don't know what to put
for (int i = 0; i nodes.count; i++) {
NSDictionary *node = (NSDictionary *)[nodes objectAtIndex:i];
NSLog(@"id = %@",[node objectForKey:@"id"]);
}
}
我不知道在节点数组的valueforKey中写什么。。。
有人能给我解释一下吗?
谢谢 您的键是:id、文本和日期。因此,如果您希望解析具有键id的对象,那么在您突出显示的那一行中:
valueForKey:@“id”根据您提供的json示例,您应该得到一个包含两个
NSDictionary
的NSArray
。所以代码应该是
NSArray *nodes = (NSArray *)response;
由于不熟悉SBJSON,响应可能实际上是一个NSDictionary
。在这种情况下,您可以使用NSLog(@“%@”,feed)打印字典代码>您应该得到一个类似以下内容的打印输出:
{
nameOfKey = (
{
"id" = 1;
"text" = "blablabla"
...
其中nameOfKey是您要查找的keyValue。那么在for循环中,我可以请求文本和日期键?这取决于您希望从JSON响应中解析什么。JSON响应包含这3个键。所以基本上这些就是你的钥匙:id,文本和日期。valueForKey表示获取与您在valueForKey后面的@“”中的引号中提到的键相关的值。因此,如果您希望单独获取文本值,请使用@“text”。REST也是一样,我只想打印每个新条目中的3个值。所以据我所知,我可以把我想要的东西放在钥匙上。对。在循环中再执行两个NSLog语句,并将text和date作为键。在此之前,请确保首先创建了NSArray,类似于节点数组,同样使用其他键