json資料解析,json解析
json檔案:
{ "count":"3", "friend": [ { "name": "zhangsan", "pwd": "12345", "nickName": "zs", "sex": "nan" }, { "name": "lisi", "pwd": "12345", "nickName": "ls", "sex": "nv" }, { "name": "wangwu", "pwd": "12345", "nickName": "ww", "sex": "nan" } ]}
在json檔案中,{}相當於字典,[]相當於數組,所以在對json資料進行解析是,根據獲得的資料不同,建立不同的對象來接收
先將資料存入data中,使用系統方法NSJSONSerialization
//系統json解析, //1.要解析的資料對象. 2.解析的類型 NSMutableDictionary *datadic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];//擷取鍵為"count"的值 NSString *count=[datadic objectForKey:@"count"]; NSLog(@"%@",count);//擷取資訊數組 NSMutableArray *array=[datadic objectForKey:@"friend"];//遍曆輸出 for (int i=0; i<array.count; i++) { NSMutableDictionary *dic=array[i]; NSLog(@"%@",[dic objectForKey:@"name"]); NSLog(@"%@",[dic objectForKey:@"pwd"]); NSLog(@"%@",[dic objectForKey:@"nickName"]); NSLog(@"%@",[dic objectForKey:@"sex"]); }
options參數指定瞭解析JSON的模式,有3種格式可供選擇
NSJSONReadingMutableContainers。指定解析返回的是可變的數組或字典。如果以後需要修改結果, 圖靈社區會員 FAID 專享 尊重著作權這個常量是合適的選擇。
NSJSONReadingMutableLeaves。指定分葉節點是可變字串。
NSJSONReadingAllowFragments。指定頂級節點可以不是數組或字典。