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。指定頂級節點可以不是數組或字典。