ios - NSJSONSerialization 返回 null - Objective-c

标签 ios objective-c json

我正在尝试使用此 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;
}

最佳答案

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

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

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

关于ios - NSJSONSerialization 返回 null - Objective-c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42074094/

相关文章:

objective-c - NSToolbarItem 图像缩放

java - 如何使用 HashMap 填充 MySQL 数据库

javascript - DataTable 仅使用 JSON 对象的特定部分

javascript - 在数组内的数组上使用 ng-repeat

ios - 如何在我的 IOS 应用程序关闭时调用方法

ios - 动态宽度大小以适应 stackview 中的控件

ios - 更改 uiviewcontroller View 框架?

ios - 如何在 Firebase 中检索自动生成的 ID/ key ?

ios - 谁是 iOS 和桌面版 Safari 的位置服务提供商

ios - 为 JSON 创建数据模型 - IOS/Objective-C