我的服务器人员正在向我发送消息对象中不同请求的不同对象的JSON数据。就像在某些请求中一样:
{
"message": {
"series": {...}
},
"boolean": true
}
并在某些请求中:
{
"message": {
"movie": {...}
},
"boolean": true
}
两个对象都有不同的数据。所以,我想得到第一个对象的名称,它是消息对象中的“电影”或“系列”,这样我就可以在其上创建一个if else条件来获取内部数据。
NSString *myRequestString = [NSString stringWithFormat:@"getVideo=1"];
// Create Data from request
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: url]];
// set Request Type
[request setHTTPMethod: @"POST"];
// Set content-type
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
// Set Request Body
[request setHTTPBody: myRequestData];
// Now send a request and get Response
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];
// Log Response
NSString *response = [[NSString alloc] initWithBytes:[returnData bytes] length:[returnData length] encoding:NSUTF8StringEncoding];
NSLog(@"Response: %@",response);
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableLeaves error:nil];
// for(NSDictionary *dict in firstObject){
// NSLog(@"%@",[dict objectForKey:@"name"]);
// }
答案 0 :(得分:2)
dict = [dict objectForKey:@"message"];
if([dict objectForKey:@"movie"]){
//Your dictionary has key movie, parse accordingly
}
else if ([dict objectForKey:@"series"]){
//Your dictionary has key series, parse accordingly
}
希望这有帮助
答案 1 :(得分:0)
NSDictionary
中没有“第一个对象”这样的东西。内容未订购。
您可以通过尝试访问它们来轻松检查是否存在对象/密钥对:
id value = dict[@"someKey"];
如果nil
没有对象,会为您提供存储的对象或@"someKey"
。
您还可以使用
遍历完整的词典- enumerateKeysAndObjectsUsingBlock:
答案 2 :(得分:0)
对于当前场景,您可以按照以下方式获取消息的第一个键:
MM
但是,我建议使用不同的api端点获取不同的数据。