“Colors” : {
“Red : {
“R” : 255,
“G” : 100,
“B” : 190,
“Light” : {
“R” : 195,
“G” : 420,
“B” : 255,
},
“Dark” : {
“R” : 36.3458,
“G” : 125.047,
“B” : 49.4638,
}
},
“Green” : {
“R” : 12,
“G” : 232,
“B” : 150,
“Light” : {
“R” : 195,
“G” : 420,
“B” : 255,
},
“Dark” : {
“R” : 36.3458,
“G” : 125.047,
“B” : 49.4638,
}
},
“Blue” : {
“R” : 105,
“G” : 200,
“B” : 150,
“Light” : {
“R” : 195,
“G” : 420,
“B” : 255,
},
“Dark” : {
“R” : 36.3458,
“G” : 125.047,
“B” : 49.4638,
}
},
}
我想在iOS中对“R”,“G”,“B”进行排序。排序不是“浅”RGB和“暗”RGB。
我们如何对JSON对象进行排序?请帮帮我。
我可以对“R”,“G”,“B”进行排序。但物体“红色”,“绿色”,“蓝色”的顺序不正确。
NSSortDescriptor * brandDescriptor = [[NSSortDescriptor alloc] initWithKey:@"R" ascending:YES];
NSArray * sortDescriptor = [NSArray arrayWithObject:brandDescriptor];
输出
Red 12 Green 105 Blue 255
您可以看到我按“R”排序,值按排序顺序排列,但颜色值“红色,绿色,蓝色”不按顺序排列。
提前致谢。
答案 0 :(得分:0)
其他人在评论中说的是正确的,但从我在你的问题中看到的你不需要真正排序。如果我理解正确,您只是想在JSON中的“红色”,“绿色”和“蓝色”词典中获取“R”的值。一种方法是:
// grab json object here, which in your case returns a dictionary
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data // where data is simply your json above, for example
options:kNilOptions
error:&error];
NSDictionary *colors = [json valueForKey:@"Colors"]; // gives you a handle on the whole json blob of Colors
NSLog(@"R: %@", [[colors valueForKey:@"Red"] valueForKey:@"R"]); // this gets the R value for Red
NSLog(@"G: %@", [[colors valueForKey:@"Green"] valueForKey:@"R"]); // this gets the R value for Green
NSLog(@"B: %@" [[colors valueForKey:@"Blue" valueForKey:@"R"]); // this gets the R value for Blue
这有帮助吗?
(另外,你可能需要为R值使用更好的格式说明符,具体取决于它们的返回方式。如果整数使用%d,如果float / double使用%f)