Objective-C:JSON无法识别的主角?

时间:2011-08-07 18:36:15

标签: iphone objective-c json ipad nsmutablearray

当尝试使用JSON执行小函数来获取数组时,我得到下一条消息:

-JSONValue failed. Error trace is: ( "Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Unrecognised leading character\" UserInfo=0x5d50e30 {NSLocalizedDescription=Unrecognised leading character}"

这是代码

NSString * payloadAsString = [[NSString alloc] initWithData:receivedData 
                               encoding:NSUTF8StringEncoding];
NSLog(@"%@",payloadAsString);
NSMutableArray *jsonArray = [[NSMutableArray alloc] initWithArray:
                                 [payloadAsString JSONValue]];
self.loginArray = jsonArray;

NSLog打印[["True","1","MTY"]](据我所知它应该有效)。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我不确定您使用的是哪个版本的json-framework,但我修改了代码以打印有问题的字符:

在SBJSONParser.m中:

- (BOOL)scanValue:(NSObject **)o
{
...
default:
[self addErrorWithCode:EPARSE description:[NSString stringWithFormat:@"Unrecognised leading character (%x)", c[-1]]];
//[self addErrorWithCode:EPARSE description: @"Unrecognised leading character"];
return NO;
}

您可以尝试在该代码行设置断点。

此外,通常,您可以尝试将JSON粘贴到http://jsonlint.com/的JSONLint中,以查看它是否有效。但是,您的JSON确实会验证,因此您的问题在其他地方。

答案 1 :(得分:1)

确保您的字符串值使用有效的直双引号字符。我见过人们试图从编辑器中复制粘贴JSON只是为了让他们的引号变成开放引用的近引号对,如下所示:

“”

答案 2 :(得分:0)

我刚遇到这个问题,结果证明Web服务使用的目录的权限已经更改。