iphone objective-c:用于json反序列化的字符串到NSData的转换



我从一个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"条记录。

当我尝试使用将以上内容转换为NSData时

NSData *jsonData = [strData dataUsingEncoding:NSUTF8StringEncoding];

以及

NSData *jsonData = [strData dataUsingEncoding:[NSString defaultCStringEncoding]];

但我有

[__NSCFDictionary dataUsingEncoding:]: unrecognized selector sent to instance 0x532bb70

我已经尝试了一些其他可用的编码,但xcode仍然失败。

我如何计算所使用的编码?

这是我第一次尝试在objective-c中取消json的实现。

我在这里错过了什么/做错了什么?

感谢

我认为它根本不是字符串。。。。

对此进行更改并测试。。。。

NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:responseData error:&error];
NSDictionary *carsDictionary = [dictionary objectForKey:@"cars"];
NSArray *arrayOfCarDictionaries = [carsDictionary objectForKey:@"car"];

最新更新