2017-01-24 164 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。這是你的'arr_mcontacts'之前你序列化爲json。 – 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

爲訪問數據你使用字典,而不是字符串。下面的代碼顯示

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);

的輸出將是cnamearray包含:{R,E}