2017-01-24 23 views
-1
[ 
    { 
    "c_name" : "r", 
    "email_id" : "r", 
    "phn_no" : "2", 
    "c_id" : "1" 
    }, 
    { 
    "c_name" : "e", 
    "email_id" : "e", 
    "phn_no" : "4", 
    "c_id" : "2" 
    } 
] 

これはJSON文字列として受け取った出力です。どうすればこれらのデータにアクセスできますか?私はNSJSONSerializationクラスを使用しました:json文字列からデータを取得する方法

NSError *writeError = nil; 

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr_mcontacts options:NSJSONWritingPrettyPrinted error:&writeError]; 

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

NSLog(@"JSON Output: %@",jsonString); 
+1

はすでにJSONのデータを有していました。あなたがjsonとしてシリアル化する前に、あなたの 'arr_mcontacts'にあるものです。 – dan

+0

NSJSONSerializationを使用してjsonデータを解析する方法については、文字通り数百、数百もの過去の質問があります。これらの質問のうち、特にどの特定の部分をどのように理解できないのでしょうか?これまで何をしようとしましたか? – Gruntcakes

答えて

1

あなたは辞書の配列を持っていると思います。このようなものはうまくいくはずです:

NSError *writeError; 
NSError *error; 
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSMutableArray *arrayOfDictionary = [[NSMutableArray alloc] init]; 
arrayOfDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil]; 

NSDictionary *dictionary = [myArray objectAtIndex:0]; 
NSString *valueString= [dictionary objectForKey: @"c_name"]; 
0

データにアクセスするには、文字列ではなく辞書を使用します。以下のコードは、出力がcnamearrayなり

NSDictionary *responseDict=[NSJSONSerialization JSONObjectWithData: jsonData options:NSJSONReadingMutableContainers error:&error]; for(NSArray *a in responseDict) {[cnamearray addobject [a valueforKey:@"c_name"]]; }NSLog(@"The cnamearray contains:", cnamearray);

を示し含ま:{R、E}

関連する問題