我会撒谎用SBJSON解析一个JSON文件,但我有一点理解问题? 这是我的JSON结构:
例如:
[{ “ID”: “1”, “文本”: “布拉布拉”, “日期”: “1235432241”},{ “ID”: “2”, “文本”: “blabla2”, “日期” : “1235432241”}]
这是我发现的用于解析JSON文件的代码SBJSON:
- (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"]);
}
}
我不知道在我的nodes数组的valueforKey中要写什么... 有人可以向我解释一下吗? 谢谢!
答案 0 :(得分:1)
您的密钥是:ID,文本和日期。因此,如果您希望使用密钥ID解析对象,那么在您突出显示的那一行中,它将是:
valueForKey:@ “ID”
答案 1 :(得分:0)
根据您提供的json示例,您应该得到一个NSArray
,其中包含两个NSDictionary
。所以代码应该是
NSArray *nodes = (NSArray *)response;
不熟悉SBJSON,实际上响应可能是NSDictionary
。在这种情况下,你可以使用NSLog(@"%@", feed);
打印字典你应该得到一个看起来像这样的打印:
{
nameOfKey = (
{
"id" = 1;
"text" = "blablabla"
...
nameOfKey将是您要查找的keyValue。