如何将JSON的键作为Object获取

时间:2015-01-15 23:03:00

标签: ios objective-c json

我收到以下字符串应该是JSON

{\"CUPS\":\"890201\",\"Cama\":\"\",\"Cantidad\":1,\"Cargo_Autorizador\":\"\",\"Cargo_Remisor\":\"\",\"Celular_Autorizador\":\"\",\"Celular_Protegido\":\"30129193\",\"Celular_Remisor\":\"\",\"Ciudad_Autorizador\":\"BOGA - CUNDIRCA\",\"Cod_Descripcion\":\"\",\"Codigo_Entidad_Pagadora\":\"EP002    \",\"Codigo_Prestador\":\"152310\",\"Consecutivo_Impresion_Web\":\"\",\"DescripcionErrorNegocio\":null,\"Diagnóstico\":\"-M25.5\",\"Direccion_Autorizador\":\"AV N° 66A-27       \",\"Direccion_Prestador\":\"AV N° 66A-27       \"}

但为了序列化NSDictionary,我留下了Key的空格但是没有

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:encodData options:kNilOptions error:nil];

在日志中:

json=(NSDictionary *) 62 key/value pairs
[0]
[1]
[2]
[3]

我尝试将每个键的数据传递给NSArray

NSArray *typeArray=[[NSArray alloc]initWithArray:[json valueForKey:@"CUPS"]];

但它会产生错误

'-[__NSCFString count]: unrecognized selector sent to instance 0x7fb28ab973f0'

我需要获取NSArray上每个键的值

2 个答案:

答案 0 :(得分:0)

如果您正在尝试获取json数据的密钥,请执行以下操作:

NSArray *typeArray=[json allKeys];

说实话,你的问题并不清楚,但这是一种枚举值和键的方法:

for (id key in [json allKeys]) {
    NSLog(@"key = %@ | value = %@", key, [json valueForKey:key]);
}

答案 1 :(得分:0)

从您的JSON中可以清楚地看到[json valueForKey:@"CUPS"]返回NSString而不是NSArray

如果您需要从字典中检索所有值,您可以使用:

NSArray *typeArray = [json allValues];