iPhone - 从YAJLiOS解析器获取数据

时间:2012-03-21 20:31:13

标签: iphone objective-c yajl

我有一些使用yajl解析器的代码:

NSArray *JSONArray = [tempContainer yajl_JSON];
NSLog(@"array of json is = %@",JSONArray);  

解析后我得到了一些json数据,如

{ 
  "account_number": "123", 
  "some_stuff": "231",
}

我的问题是:如何从解析数据的特定值中获取数据。

* EX。我想要“account_number”,我得到“123”*

2 个答案:

答案 0 :(得分:0)

  

你的问题应该清楚,没有拼写错误

您确定以与您在问题中输入的格式相同的方式获取json数据,还是仅仅是一个拼写错误?

我假设你的json数据是这样的 { “account_number”:“123”, “some_stuff”:231, }

然后它只是一个简单的字典,您可以使用valueForKey方法获取值。

答案 1 :(得分:0)

您可能需要查看流API以从JSON构建NSMutableDictionaries:

NSData *data = [NSData dataWithContentsOfFile:@"example.json"];

 YAJLParser *parser = [[YAJLParser alloc] initWithParserOptions:YAJLParserOptionsAllowComments];
 parser.delegate = self;
 [parser parse:data];
 if (parser.parserError)
   NSLog(@"Error:\n%@", parser.parserError);

 parser.delegate = nil;
 [parser release];

 // Include delegate methods from YAJLParserDelegate 
 - (void)parserDidStartDictionary:(YAJLParser *)parser { }
 - (void)parserDidEndDictionary:(YAJLParser *)parser { }

 - (void)parserDidStartArray:(YAJLParser *)parser { }
 - (void)parserDidEndArray:(YAJLParser *)parser { }

 - (void)parser:(YAJLParser *)parser didMapKey:(NSString *)key { }
 - (void)parser:(YAJLParser *)parser didAdd:(id)value { }