我想将C字符串解析为NSDictionary。以下代码在OS X下编译时效果很好,但是在Ubuntu 14.04 LTS和GNUStep 7.7下使用时,会导致错误“ 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;
}

最佳答案

我找到了解决方案:这是我使用的GNUstep版本中的一个错误,当使用NSJSONSerializationlatest source时,一切正常。

关于objective-c - 使用GNUStep将JSON解析为NSDictionary不适用于 bool 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27197229/

10-14 22:14
查看更多