2017-02-06 3 views
0

このURLを使用してNSJSONSerializationをテストしようとしています。リンクが動作し、アプリケーションが実行されますが、シリアライゼーションを記録すると、結果はnullになります。NSJSONSerializationがnullを返す - Objective-c

誰でも私が間違っていることを教えてもらえますか?コード:

@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; 
} 

答えて

0

あなたのJSONは整形式ではないようです。

あなたのリンクをSafariに入力し、結果のJSONをコピーしてJSONLintのようなJSON検証ツールに貼り付けると、25行目にエラーが表示されます。閉じ括弧(])がそこに属していないようです。 JSONには2つのルート配列オブジェクトが含まれているようですが、私はそれが有効ではないと考えています。

リファクタリングして辞書の配列を1つだけ含むと、有効なJSONとしてJSONLintテストが渡されます。

+0

ありがとう、Duncan、私は同じことをしました。はい、JSONにエラーがあります – FuManchu