0

データを取得したばかりですが、それを NSData から文字列に追加しようとすると、コンパイラで Exception error が発生します。私のコードは次のようです:

NSDictionary *allDAtaDictionary = [NSJSONSerialization JSONObjectWithData:_webData options:0 error:nil];
NSString *jSonStatus = [allDAtaDictionary objectForKey:@"status"];
if([jSonStatus isEqualToString:@"OK"])
{
   NSDictionary *results = [allDAtaDictionary objectForKey:@"user_details"];
   NSLog(@"User Details :  %@",results);

これらの行が始まるまで、すべてがうまく機能します。

NSString *userID = [results objectForKey:@"userID"];

エラー出力は次のとおりです。

*キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[__NSCFArray objectForKey:]: 認識されないセレクターがインスタンス 0x9485a00 に送信されました'

これは私のjSOn出力、 NSLog(@"User Details : %@",results); です。

User Details :  (
        {
        userCity = California;
        userCountry = "United States";
        userDOB = "1988-03-02";
        userDetails = "";
        userEmail = "xxx@xxx.com";
        userFBID = 715296184;
        userFullName = "John Mc Grager";
        userGender = Male;
        userID = 70;
        userLastLoginTime = "2013-05-29 10:51:27";
        userLatitude = "37.7858";
        userLongtitude = "-122.406";
        userNickName = warblader;
        userPassword = "";
        userStatus = 1;
        userToken = "";
    }
)
4

3 に答える 3

3

JSON は、1 つの辞書を含む配列のようです。少なくともここであなたが私たちに見せてくれるもの。

そう

NSArray *results = [allDAtaDictionary objectForKey:@"user_details"];
NSLog(@"User Details :  %@",results);

assert(results.count>0);
NSDictionary *user = [results objectAtIndex:0];

NSString *userID = [results objectForKey:@"userID"];
NSLog(@"%@", userID);
于 2013-05-29T08:07:27.383 に答える
0

あなたの応答にはおそらく配列が含まれており、その結果Dictionary が保持しているため、objectForKey を呼び出すのではなく ObjectAtIndex を使用する必要があります

于 2013-05-29T08:07:27.333 に答える