【问题标题】:Parsing JSON into NSDictionary with GNUStep doesn't work for Booleans使用 GNUStep 将 JSON 解析为 NSDictionary 不适用于布尔值
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2018-02-22
    • 2011-01-17
    • 2013-02-07
    相关资源
    最近更新 更多