【发布时间】:2018-10-03 04:52:35
【问题描述】:
我正在 iOS 中开发获取数据 web api 的简单应用程序,我的代码正确返回了 json 数据,但是当我想指定例如来自 json 的学生姓名时返回 null。 这是我的数据:
{
Sudent(
{
{"id":"20",
"name":"Alan",
"email":"simpl@gmail.com",
"phone":"1234567890",
"location":"London"},
{
"id":"40",
"name":"John",
"email":"simpl@gmail.com",
"phone":"1234567890",
"location":"usa"},
"id":"50",
"name":"Nora",
"email":"simpl@gmail.com",
"phone":"1234567890",
"location":"kenya"},
})}
这是我的代码,它以 json 格式获取数据并存储名为 Student 的 NSMutableArray:
-(void)proxydidFinishLoadingData:(id)data InMethod:(NSString*)method
{
if ([method isEqualToString:@"getstudentdata"]){
defaultDict = [[NSMutableDictionary alloc]init];
[defaultDict addEntriesFromDictionary:[NSJSONSerialization JSONObjectWithData:[data dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]];
Student = [defaultDict objectForKey:@"data"];
}
}
此代码工作正常且正确并返回 json 数据,但问题是当我想要获取特定索引(例如学生姓名)时它不起作用它返回 null 值。 完成这项工作的代码在这里:
NSMutableDictionary *response = [[defaultDict valueForKey:@"data"] mutableCopy];
NSString *name = [[response valueForKey:@"name"]];
];
NSLog(@"%@" ,name);
请帮我获取学生姓名
【问题讨论】:
-
不清楚:您打印的究竟是什么?避免使用
valueForKey:,我不建议初学者使用,改用objectForKey:,为什么[[response valueForKey:@"name"]]中的双括号?在这种情况下,response到底是什么?我在您的 logq 中看到了NSArray,但没有任何相关内容。 -
首先获取学生的 NSArray,然后您就可以从字典中获取姓名。
-
如何获取请帮帮我
-
@Mrdavidalan 你能在你的数组中获取数据吗?是或否。
-
抱歉,此格式无效。
标签: ios objective-c json