【发布时间】:2014-11-28 23:37:19
【问题描述】:
我想将一个 C 字符串解析成一个 NSDictionary。以下代码在 OS X 下编译时效果很好,但在带有 GNUStep 7.7 的 Ubuntu 14.04 LTS 下使用时会导致错误“JSON Parse error”。该错误仅发生在布尔值 (true,false) 上,但适用于数字和字符串。
您知道问题可能是什么或我可以如何绕过它吗?
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//const char* str = "{\"result\":\"foo\"}"; //works
const char* str = "{\"result\":true}"; //doesn't work
NSData* data = [NSData dataWithBytes:str length:strlen(str)];
NSError *err = nil;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err];
if(err != nil)
//Output: "Err: JSON Parse error"
NSLog(@"Err: %@",err);
else
NSLog(@"Dic: %@",dic);
[pool drain];
return 0;
}
【问题讨论】:
-
你从哪里得到错误? JSON 是什么样的?
-
@HotLicks 我将 JSON 放入上面的示例中 ({"result":true})。调用
[NSJSONSerialization JSONObjectWithData]时出现错误,设置了err(输出:“Err: JSON Parse error”)
标签: objective-c json linux gnustep