【发布时间】:2015-10-13 17:24:17
【问题描述】:
我正在尝试从嵌套的 JSON 响应下方获取一些键和值。下面我提到了我的JSON 响应结构,我需要从下面的响应中获取所有keys(Red, Green) 和键values(Color and ID) 并加载到表格视图单元格值的数组中。
仅供参考:我尝试过使用NSDictionary,但我一直得到无序值。我还需要获得有序值。请帮帮我!
{
response: {
RED: {
Color: "red",
color_id: "01",
},
GREEN: {
Color: "green",
color_id: "02",
}
},
Colorcode: { },
totalcolor: "122"
}
我的代码:
NSError *error;
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSArray *responsData = [jsonDictionary objectForKey:@"response"];
NSLog("%@",[responsData objectAtIndex:0]); // here I am getting bad exception
NSDictionary *d1 = responsData.firstObject;
NSEnumerator *enum1 = d1.keyEnumerator;
NSArray *firstObject = [enum1 allObjects];
【问题讨论】:
-
字典是无序的,所以如果你想保留顺序,你必须改变原来的JSON,使
response中的数据是一个数组,而不是字典。 -
是的,我同意。我在问如何在不提及“键名(如:红色)”的情况下获取键名和键值。如何将这些值加载到 tableview 的单独数组中。如果你有示例代码分享在这里!谢谢@Rob
-
@Apple_Ajay 你能发布原始的 JSON 响应吗?问题中的 JSON 不是有效的 JSON。
-
响应 = [responsData objectAtIndex:0];响应它是您的 json 中的字典格式
-
是的。它无效,因为我们应该为所有键和键值提供引号。 @GoodSp33d
标签: ios objective-c json