0

我对 iOS 应用程序开发非常陌生,我从服务器收到以下响应:

"[{\"EmployeeID\":\"000001\",\"EmplyeeName\":\"ABCD EFGHI\"},
{\"EmployeeID\":\"000002\",\"EmplyeeName\":\"ADGHT ASASASAS\"}]"

请任何人帮助我了解如何在我的应用程序中使用员工 ID 和员工姓名。

4

6 回答 6

2
NSData *response = ...;
NSArray *entries = [NSJSONSerialization JSONObjectWithData:response
                                                   options:0
                                                     error:nil];

for(NSDictionary* entry in entries) {
    NSString* employeeID = [entry objectForKey:@"EmployeeID"];
}
于 2013-11-08T12:30:38.433 回答
2

您的 JSON 数据看起来像“嵌套 JSON”,这意味着您必须对其进行两次反序列化。

第一次反序列化从您的 JSON 数据中提取一个字符串:

NSData *response = ...; // your data
NSError *error;
NSString *innerJson = [NSJSONSerialization JSONObjectWithData:response
                              options:NSJSONReadingAllowFragments error:&error];

现在innerJson是字符串

[{"EmployeeID":"000001","EmplyeeName":"ABCD EFGHI"},{"EmployeeID":"000002","EmplyeeName":"ADGHT ASASASAS"}]

这又是 JSON 数据。第二次反序列化提取数组:

NSArray *entries = [NSJSONSerialization JSONObjectWithData:[innerJson dataUsingEncoding:NSUTF8StringEncoding]
                              options:0 error:&error];

现在您可以像访问它一样访问它

for (NSDictionary *entry in entries) {
    NSString* employeeID = [entry objectForKey:@"EmployeeID"];
    NSLog(@"%@", employeeID);
}
于 2013-11-08T13:16:27.203 回答
1

看看 JSON Parser 你的响应是 JSON 所以你需要从 json 获取数据。

NSURL * url=[NSURL URLWithString:@"<YourURL>"];

NSData * data=[NSData dataWithContentsOfURL:url];

NSError * error;

NSMutableDictionary  * json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];

NSLog(@"%@",json);


NSMutableArray * EmployeeID=[[NSMutableArray alloc]init];

NSMutableArray * EmployeeName=[[NSMutableArray alloc]init];

NSArray * responseArr = json[@"geonames"];

for(NSDictionary * dict in responseArr)
{

[EmployeeID addObject:[dict valueForKey:@"EmployeeID"]];
[EmployeeName addObject:[dict valueForKey:@"EmplyeeName"]];

}

现在你得到了 EmployeeID,EmployeeName 数组,你可以在任何你想要的地方使用。

于 2013-11-08T12:33:13.457 回答
0

看一眼:

NSJSON序列化

于 2013-11-08T12:27:38.930 回答
0

用这个:

NSData* yourData = [[NSData alloc] initWithContentsOfURL: yourURL];
NSarray* yourJSON = [NSJSONSerialization JSONObjectWithData:yourData options:kNilOptions error:nil];

希望这对你有帮助:)

于 2013-11-08T12:33:10.257 回答
0

尝试使用这个:

NSDictionary *myJSON = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:nil];
于 2013-11-08T12:33:49.263 回答