昨晚我使用TouchJSON做了一些测试,它对于简单的情况一般工作得很好。我使用下面的代码从文件中读取一些JSON内容,并反序列化:使用TouchJSON反序列化复杂的JSON结果(字典数组)
NSString *jsonString = [[NSString alloc] initWithContentsOfFile:@"data.json"];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary *items = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
NSLog(@"total items: %d", [items count]);
NSLog(@"error: %@", [error localizedDescription]);
,如果我有一个非常简单的JSON对象正常工作的文件(比如字典):
{"id": "54354", "name": "boohoo"}
这样我能得到访问值的数组,因为我想基于其在列表中的索引来获取项目:
NSArray *items_list = [items allValues];
NSString *name = [items_list objectAtIndex:1];
(据我所知,我能有FET用字典API加上名字)
现在我想反序列化一个半复杂的JSON字符串,它代表一个字典数组。这样的JSON字符串的例子下面是:
[{"id": "123456", "name": "touchjson"}, {"id": "3456", "name": "bleh"}]
当我尝试对在data.json文件这一新的内容上面运行相同的代码,我没有得到任何结果回来。我的NSLog()调用说“总项目:0”,并没有错误返回到NSError对象中。
发生了什么事情的线索?我完全不知道该怎么做,因为没有太多针对TouchJSON的文档,以及更少的使用示例。
谢谢,我能弄清楚如何反序列化与JSON框架复杂的JSON字符串。 – jpm 2008-11-14 03:47:33
我一直在使用这个框架以及复杂的json结构,并且还没有遇到任何问题 – seanalltogether 2008-11-14 03:47:47
链接已经死了! – Gustav 2012-06-29 08:26:14