如何用Object-C解析JSON?我对iPhone很陌生。有人能告诉我解析这些数据并获取活动细节、名字和姓氏所遵循的步骤吗?{
"#error": false,
"#data": {
"": {
"activity_id": "35336",
"user_id": "1",
"user_first_name": "Chandra Bhusan",
"user_last_name": "Pandey",
"time": "1300870420",
"activity_details": "Good\n",
"activity_type": "status_update",
"photo_url": "http://184.73.155.44/hcl-meme/QA_TEST/sites/default/files/pictures/picture-1627435117.jpg"
},
"boolean": "1",
"1": {
"1": {
"photo_1_id": "9755"
},
"activity_id": "35294",
"album_name": "Kalai_new_Gallery",
"user_id": "31",
"album_id": "9754",
"user_first_name": "Kalaiyarasan",
"user_last_name": "Balu",
"0": {
"photo_0_id": "9756"
},
"time": "1300365758",
"activity_type": "photo_upload",
"photo_url": "http://184.73.155.44/hcl-meme/QA_TEST/"
},
"3": {
"activity_id": "35289",
"user_id": "33",
"user_first_name": "Girija",
"user_last_name": "S",
"time": "1300279636",
"activity_details": "girija Again\n",
"activity_type": "status_update",
"photo_url": "http://184.73.155.44/hcl-meme/QA_TEST/sites/default/files/pictures/picture-33-6361851323080768.jpg"
},
3 回答
jeck猫
TA贡献1909条经验 获得超7个赞
NSJSONSerialization
NSData *returnedData = ...JSON data, probably from a web request...// probably check here that returnedData isn't nil; attempting// NSJSONSerialization with nil data raises an exception, and who// knows how your third-party library intends to react?if(NSClassFromString(@"NSJSONSerialization")){ NSError *error = nil; id object = [NSJSONSerialization JSONObjectWithData:returnedData options:0 error:&error]; if(error) { /* JSON was malformed, act appropriately here */ } // the originating poster wants to deal with dictionaries; // assuming you do too then something like this is the first // validation step: if([object isKindOfClass:[NSDictionary class]]) { NSDictionary *results = object; /* proceed with results as you like; the assignment to an explicit NSDictionary * is artificial step to get compile-time checking from here on down (and better autocompletion when editing). You could have just made object an NSDictionary * in the first place but stylistically you might prefer to keep the question of type open until it's confirmed */ } else { /* there's no guarantee that the outermost object in a JSON packet will be a dictionary; if we get here then it wasn't, so 'object' shouldn't be treated as an NSDictionary; probably you need to report a suitable error condition */ }}else{ // the user is using iOS 4; we'll need to use a third-party solution. // If you don't intend to support iOS 4 then get rid of this entire // conditional and just jump straight to // NSError *error = nil; // [NSJSONSerialization JSONObjectWithData:...}
临摹微笑
TA贡献1982条经验 获得超2个赞
NSString* path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"json"];//将文件内容读取到字符串中,注意编码NSUTF8StringEncoding 防止乱码,NSString* jsonString = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//将字符串写到缓冲区。NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];NSError *jsonError;id allKeys = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONWritingPrettyPrinted error:&jsonError];for (int i=0; i<[allKeys count]; i++) { NSDictionary *arrayResult = [allKeys objectAtIndex:i]; NSLog(@"name=%@",[arrayResult objectForKey:@"storyboardName"]);}
[ { "ID":1, "idSort" : 0, "deleted":0, "storyboardName" : "MLMember", "dispalyTitle" : "76.360779", "rightLevel" : "10.010490", "showTabBar" : 1, "openWeb" : 0, "webUrl":"" }, { "ID":1, "idSort" : 0, "deleted":0, "storyboardName" : "0.00", "dispalyTitle" : "76.360779", "rightLevel" : "10.010490", "showTabBar" : 1, "openWeb" : 0, "webUrl":"" } ]
- 3 回答
- 0 关注
- 1400 浏览
添加回答
举报
0/150
提交
取消