json資料:
{ "result": [ { "meeting": { "addr": "203", "creator": "張一", "member": [ { "name": "張二", "age": "20" }, { "name": "張三", "age": "21" }, { "name": "張四", "age": "22" } ] } }, { "meeting": { "addr": "204", "creator": "張二", "member": [ { "name": "張二", "age": "20" }, { "name": "張三", "age": "21" }, { "name": "張四", "age": "22" } ] } } ]}
1、擷取json檔案路徑,根據路徑來擷取裡面的資料:
NSString *path=[[NSBundle mainBundle] pathForResource:@"test" ofType:@"json"]; NSString *_jsonContent=[[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
2、然後根據得到的_jsonContent字串對象來擷取裡面的索引值對:
NSMutableDictionary dict=[_jsonContent JSONValue];//我們不需要去定義擷取的方法,使用系統定義好的JSONValue即可
3、然後根據得到的索引值對來進行JSON解析:
/* 根據上面json資料之間的邏輯關係,可以獲知我們解析的順序: 1. 根據得到的字串擷取裡面的索引值對, 2. 根據得到的索引值對通過key來得到對應的值,也就是值裡面的數組, 3. 然後擷取數組中的索引值對, 4. 然後根據得到的索引值對通過key擷取裡面的索引值對中的值 */ //json解析 //2. NSArray *result=[_dict objectForKey:@"result"]; //3. NSDictionary *dic=[result objectAtIndex:0]; //4. NSDictionary *meeting=[dic objectForKey:@"meeting"]; //得到 addr 值 NSString *address = [meeting objectForKey:@"addr"]; //得到 creator 值 NSString *creator = [meeting objectForKey:@"creator"]; //得到 member 裡面的資料,因為這個索引值中有數組,所以要重複上面的2,3,4的動作 //2. NSArray *members=[meeting objectForKey:@"member"]; //3. //這裡用了for迴圈語句, for (NSDictionary * member in members) { //4. NSString *name = [member objectForKey:@"name"]; NSString *age = [member objectForKey:@"age"]; }
這樣就可以實現解析json資料了。。。