Bra*_*don 14 iphone json objective-c ios
我有一个NSString以a JSON的形式存储数组NSString.被NSString调用colorArray的值为:
[{ "color":"Red" },{ "color":"Blue" },{ "color":"Yellow"}];
Run Code Online (Sandbox Code Playgroud)
我还有一个tableview,我想导入数组,以填充表.如果我将数据加载tableData到如下所示的数组中,该表有效,但我无法弄清楚如何将其NSString转换为可用于填充tableData如下所示的数组的数组...
有人有想法吗?非常感谢!
- (void)viewDidLoad
{
[super viewDidLoad];
// Initialize table data
tableData = [NSArray arrayWithObjects:@"Red", @"Blue", @"Yellow", nil];
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 42
// Your JSON data:
NSString *colorArray = @"[{ \"color\":\"Red\" },{ \"color\":\"Blue\" },{ \"color\":\"Yellow\"}]";
NSLog(@"colorArray=%@", colorArray);
// Convert to JSON object:
NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[colorArray dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:NULL];
NSLog(@"jsonObject=%@", jsonObject);
// Extract "color" values:
NSArray *tableData = [jsonObject valueForKey:@"color"];
NSLog(@"tableData=%@", tableData);
Run Code Online (Sandbox Code Playgroud)
输出:
colorArray=[{ "color":"Red" },{ "color":"Blue" },{ "color":"Yellow"}]
jsonObject=(
{
color = Red;
},
{
color = Blue;
},
{
color = Yellow;
}
)
tableData=(
Red,
Blue,
Yellow
)
最后一步使用的特殊功能-[NSArray valueForKey:]
返回一个数组,该数组包含valueForKey:使用每个数组对象上的键调用的结果.