解析客观c错误中的JSON值?

时间:2011-07-06 06:23:51

标签: objective-c json parsing

我使用ASIHTTPRequest来获取令牌,我收到了这个字符串:

{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}

我在这里使用了JSON Framework:http://stig.github.com/json-framework

这是我收到字符串后的代码:

- (void)requestFinished:(ASIHTTPRequest *)req
{
    NSString *responseString = [req responseString];
    NSLog(@"Response: %@", [req responseString]);

    // Parse the response
    SBJsonParser *jsParser = [SBJsonParser new];
    id content = [responseString JSONValue];
    if(!content){
        // Parsing error
        NSLog(@"%@", jsParser.errorTrace);
    }
}
NSLog(@"ID: %@", content);

我收到此错误:

 -JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object key string expected\" UserInfo=0x5a418a0 {NSLocalizedDescription=Object key string expected}"

我的猜测是,我使用的JSON框架无法理解响应字符串格式:

{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}

还有其他解析值的方法吗?

快乐的节目, Johnie

2 个答案:

答案 0 :(得分:4)

正在寻找一个开始和结束“围绕令牌。

{"Token":[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}

答案 1 :(得分:0)

此代码中存在错误:

SBJsonParser *jsParser = [SBJsonParser new];
id content = [responseString JSONValue];
if(!content){
    // Parsing error
    NSLog(@"%@", jsParser.errorTrace);
}

您实例化一个解析器jsParser,但不要使用它来解析字符串。 (JSONValue方法在内部实例化一个新的解析器。)然后从解析器中读取错误,该错误不用于解析字符串