我的 .Net 网络服务网址是:http: //xx.xx.xx.xxx/iOSCalender/service1.asmx,它有一个名为:“getDataFromMaster”的方法名称,它返回 JSON 数据如下(我不知道为什么不同的浏览器显示不同的输出):
从 safari 运行时:
[
{
"Training_Code": "1234 ",
"Training_Duration": "2hrs ",
"Training_Startdate": "14/02/2013 15:00:00",
"Training_Enddate": "14/02/2013 17:00:00",
"Trainer_ID": 1,
"Training_Location": "B-Wing Training room-4",
"Comments": "C# training",
"Keyword": "C#1234",
"NumberofDays": 1
},
{
"Training_Code": "4321 ",
"Training_Duration": "16 ",
"Training_Startdate": "17/02/2013 10:30:00",
"Training_Enddate": "17/02/2013 17:30:00",
"Trainer_ID": 2,
"Training_Location": "A-Wing Training Room-6",
"Comments": "Objective-C",
"Keyword": "Obj-C4321",
"NumberofDays": 2
}
]
从 IE 运行时:
<?xmlversion="1.0"encoding="UTF-8"?><stringxmls="http://tempuri.org/">
[
{
"Training_Code": "1234 ",
"Training_Duration": "2hrs ",
"Training_Startdate": "14/02/2013 15:00:00",
"Training_Enddate": "14/02/2013 17:00:00",
"Trainer_ID": 1,
"Training_Location": "B-Wing Training room-4",
"Comments": "C# training",
"Keyword": "C#1234",
"NumberofDays": 1
},
{
"Training_Code": "4321 ",
"Training_Duration": "16 ",
"Training_Startdate": "17/02/2013 10:30:00",
"Training_Enddate": "17/02/2013 17:30:00",
"Trainer_ID": 2,
"Training_Location": "A-Wing Training Room-6",
"Comments": "Objective-C",
"Keyword": "Obj-C4321",
"NumberofDays": 2
}
]</string>
我正在尝试从我的 iOS 应用程序中解析 JSON,如下所示:
-(void)loadCalendarView
{
if(x==0)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Failed" message:@"Authentication failed" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
else if(x==1)
{
[self ParseJSONdataFromMasterTraining];
[self.navigationController pushViewController:self.viewController animated:YES];
}
}
-(void)ParseJSONdataFromMasterTraining
{
dispatch_sync(kBgQueue, ^{NSData *data = [NSData dataWithContentsOfURL:URLMasterTraining];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
-(void)fetchedData:(NSData*)responseData
{
NSError *err;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&err];
NSLog(@"jsonDict = %@",json);
NSArray *trainingDetails = [json objectForKey:@"iOSCalender"];
NSLog(@"getDataFromTrainingMaster = %@",trainingDetails);
}
我无法获取数据,我的“trainingDetails”显示为空。
注意:我为此尝试了“dispatch_sync”和“dispatch_async”方法,但仍然遇到同样的问题。
任何人都可以指导我,我要去哪里以及如何纠正这个问题?谢谢。