我从Web服务接收json到NSMutableData。
使用TouchJson将其转换为NSDictionary。
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:responseData error:&error];
NSString *strData = [dictionary objectForKey:@"cars"];
然后,我从该字典中的密钥中检索字符串。
字符串如下所示
{
b = "http://schemas.datacontract.org/";
car = (
{
"car_name" = "Honda Civic";
year = 2011;
"dealer" = "local honda dealer";
"bought on" = {
nil = 1;
};
"license_number" = 1234567;
status = ReadyToGo;
}
)};
基本上可以有'n'个记录来反对'car'键。
当我尝试使用
将上述内容转换为NSData时NSData *jsonData = [strData dataUsingEncoding:NSUTF8StringEncoding];
以及
NSData *jsonData = [strData dataUsingEncoding:[NSString defaultCStringEncoding]];
但我得到
[__NSCFDictionary dataUsingEncoding:]: unrecognized selector sent to instance 0x532bb70
我已尝试过其他一些编码,xcode仍然可以使用。
如何确定正在使用的编码?
这是我第一次尝试在objective-c中实现json。
我在这里错过了什么/做错了什么?
由于
答案 0 :(得分:1)
我认为这根本不是一个字符串......
更改为此并测试....
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:responseData error:&error];
NSDictionary *carsDictionary = [dictionary objectForKey:@"cars"];
NSArray *arrayOfCarDictionaries = [carsDictionary objectForKey:@"car"];