2017-12-12 27 views
-8

JSONデータの下から詳細データを取得するには? Objective-Cを使用しました。ObjectiveCのJSON解析

{ 
    "success" : "Y" 
    "data": [ 
    { 
     "insertId": "1", 
    } 
    ] 
    "err" : "" 
} 
+0

可能な複製である[どのように私はObjective-CのでJSONをパースしますか?](https://stackoverflow.com/questions/5547311/how-do- i-parse-json-with-objective-c) –

+0

cw park私のコードを試してください。うまくいきます。 – user3182143

答えて

0

必要な正確なデータ

NSArray *array=[dictionary objectforKey:@"data"]; 

あなたは配列[{ "insertId": "1" を、}]を取得:あなたが応答を取得する場合、データのために

NSDictionary *data = [NSJSONSerialization JSONObjectWithData: [responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error]; 

にその応答を取得

NSdictionary *dict=[array objectAtIndex:0]; 

辞書を配列{insertId ":" 1 "、}

0

私はあなたに詳細な解決策を教えます。

まず、レスポンスチェックを受けると、arrayまたはdictionaryで始まるかどうかがチェックされます。

id jsonRes = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

私はあなたのresponse.Itを確認あなたはまた、いくつかの疑問を持っているdictionary.Ifで始まる、キーを使用して応答から結果を得ることcondition.Afterの下に確認してください。

if([jsonRes isKindOfClass:[NSDictionary class]]){ 
     NSDictionary *dictRes = [jsonRes copy]; 
     NSString *strSuccess = [dictRes objectForKey:@"success"]; 
     NSString *strError = [dictRes objectForKey:@"err"]; 
     NSString *strInsertedId = [[[dictRes objectForKey:@"data"]objectAtIndex:0] objectForKey:@"insertId"]; 

     NSLog(@"The Success is - %@",strSuccess); 
     NSLog(@"Error is - %@",strError); 
     NSLog(@"Inserted id is - %@",strInsertedId); 
    } 
else { 
     NSLog(@"The response starts with array"); 
} 

以下、手動でコードを試してみましたが、正常に動作します。文字列を使用してjsonを作成し、結果を確認しました。

NSString *strJson = @"{ \"success\": \"Y\", \"data\": [{\"insertId\": \"1\" }],\"err\": \"\"}" ; 
NSError *jsonError; 
NSDictionary *dictRes = [NSJSONSerialization JSONObjectWithData: [strJson dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&jsonError]; 
NSLog(@"The response are - %@",dictRes); 
NSString *strSuccess = [dictRes objectForKey:@"success"]; 
NSString *strError = [dictRes objectForKey:@"err"]; 
NSString *strInsertedId = [[[dictRes objectForKey:@"data"]objectAtIndex:0] objectForKey:@"insertId"]; 

NSLog(@"The Success is - %@",strSuccess); 
NSLog(@"Error is - %@",strError); 
NSLog(@"Inserted id is - %@",strInsertedId); 

出力結果は、の

enter image description here

+0

このような恐ろしい質問への回答は投稿しないでください。あなたがやっていることは、このサイトの悪い質問を奨励することです。代わりに、投票を閉じて自分の努力を示す質問に努力してください。 – rmaddy