4

JSON オブジェクトを取得して表示することはできますが、「lat」と「lng」から値を取得して Xcode で使用するにはどうすればよいですか?

私のコード:

NSString *str=[NSString stringWithFormat:@"https://www.<WEBSITE>];
NSURL *url=[NSURL URLWithString:str];
NSData *data=[NSData dataWithContentsOfURL:url];
NSError *error=nil;

NSDictionary* dictionary = [NSJSONSerialization JSONObjectWithData:data
                                                           options:kNilOptions
                                                             error:&error];
NSLog(@"Your JSON Object: %@ Or Error is: %@", dictionary, error);

JSON オブジェクト:

(
    {
    response =         {

        lat = "52.517681";
        lng = "-115.113995";

    };
}

)

どのデータにもアクセスできないようです。私はもう試した:

NSLog(@"Value : %@",[dictionary objectForKey:@"response"]);

私はまた、次のような多くのバリエーションを試しました

NSLog(@"Value : %@",[[dictionary objectForKey:@"response"] objectForKey:@"lat"]);

しかし、それは常にクラッシュで終わります:

-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x15dd8b80

デバッグを行っているときに、「辞書」が 1 つのオブジェクトのみで構成されていることに気付きました。JSON オブジェクトをキー ペアを使用して NSDictionary に変換するにはどうすればよいですか? この JSON オブジェクトの形式が間違っていますか?

4

3 に答える 3

5

その特定の JSON オブジェクトは NSDictionary ではなく NSArray であるため、セレクターが認識されず、NSJSONSerialization JSONObjectWithData が ID を返すため、警告が表示されません。

試す

NSArray *array = [NSJSONSerialization JSONObjectWithData:data
                                                 options:kNilOptions
                                                   error:&error];
NSDictionary *dictionary = array[0];
于 2013-10-14T15:14:37.783 に答える