我设法从一些json中提取以下数组(我将其转储到控制台)。如何获取并打印其中一个元素的值,即任务?
目标-C:
NSArray *array = [dict objectForKey:@"row"];
NSLog(@"array is: %@",array);
控制台输出:
array is: { 0 = 1; 1 = "send email"; 2 = "with attachment"; ltask = "with attachment"; task = "send email"; userid = 1; }
答案 0 :(得分:3)
array
看起来实际上是NSDictionary
,因此请引用该键以获取其值。
NSLog(@"Task: %@", array[@"task"]);
答案 1 :(得分:0)
变量数组似乎不是NSArray
。这对你有用吗?
id array = [dict objectForKey:@"row"];
if([array isKindOfClass:[NSDictionary class]]){
NSLog(@"Value of task %@",array[@"task"]);
}
答案 2 :(得分:0)
从日志中看,输出看起来像是一个NSDictionary
对象,所以要获取任务键的值,只需执行此操作
NSDictionary *myDict = dict[@"row"];
NSString *task = myDict[@"task"];
NSLog(@"task = %@", task);
如果您想确认只需使用isKindOfClass:
方法检查班级类型
if([dict[@"row"] isKindOfClass:[NSDictionary class]]) {
NSDictionary *myDict = dict[@"row"];
NSString *task = myDict[@"task"];
NSLog(@"task = %@", task);
} else if([dict[@"row"] isKindOfClass:[NSArray class]]) {
NSArray *myArray = dict[@"row"];
NSDictionary *myDict = myArray[0];
NSString *task = myDict[@"task"];
NSLog(@"task = %@", task);
}
答案 3 :(得分:0)
试
if ([[dictionary allKeys] containsObject:@"row"]) {
NSObject *objRow = dictionary[@"row"];
if(objRow){
if([objRow isKindOfClass:[NSArray class]]){
NSArray *arr = (NSArray *)objRow;
....
}
if([objRow isKindOfClass:[NSDictionary class]]){
NSDictionary *dic = (NSDictionary *)objRow;
....
}
}
}