当尝试使用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"]]
(据我所知它应该有效)。
有什么想法吗?
答案 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服务使用的目录的权限已经更改。