【问题标题】:NSJSONSerialization returning null - Objective-cNSJSONSerialization 返回 null - Objective-c
【发布时间】:2017-02-06 17:48:21
【问题描述】:

我正在尝试使用此 URL 测试 NSJSONSerialization ;链接有效,应用程序运行,但是当我记录序列化时,我得到一个空结果。

谁能告诉我我做错了什么?代码:

@implementation ViewController

- ( void )viewDidLoad
{
    [super viewDidLoad];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setURL:[NSURL URLWithString:@"https:franciscocosta.net/lisbon-spots"]];

    NSURLSessionDataTask *task = [[self getURLSession] dataTaskWithRequest:request completionHandler:^( NSData *data, NSURLResponse *response, NSError *error )
    {dispatch_async( dispatch_get_main_queue(),
^{
NSError *jsonError;
NSArray *parsedJSONArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];

    NSLog( @"%@", parsedJSONArray );
                        } );
                    }];
    [task resume];
}

- ( NSURLSession * )getURLSession
{
    static NSURLSession *session = nil;
    static dispatch_once_t onceToken;
    dispatch_once( &onceToken,
                  ^{
                      NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
                      session = [NSURLSession sessionWithConfiguration:configuration];
                  } );

    return session;
}

【问题讨论】:

    标签: ios objective-c json


    【解决方案1】:

    看起来您的 JSON 格式不正确。

    如果在 Safari 中键入您的链接,然后复制生成的 JSON 并将其粘贴到 JSONLint 等 JSON 验证器中,它会在第 25 行显示错误。看起来有不属于的右括号 (])那里。似乎 JSON 包含 2 个根数组对象,我认为这是无效的。

    如果将其重构为包含单个字典数组,它会作为有效 JSON 通过 JSONLint 测试。

    【讨论】:

    • 谢谢,Duncan,我也这样做了,是的,JSON 有错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多