如何将JSON序列化数据转换为NSDictionary

我用过这个方法,

NSDictionary *jsonObject=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil]; NSLog(@"jsonObject is %@",jsonObject); 

它正在打印“jsonObject为null”。
是否有任何问题,“错误:无”。
我没有使用任何url或连接方法。
我有一个json文件,我想显示在一个表中。

请尝试下面的代码。

 NSError* error; NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; NSArray* latestLoans = [json objectForKey:@"loans"]; NSLog(@"loans: %@", latestLoans); 

万一有人在这里看到迅捷的代码:

NSData到NSDictionary

 let dictionary:NSDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(jsonData)! as NSDictionary 

NSData到NSString

 let resstr = NSString(data: res, encoding: NSUTF8StringEncoding) 

检查你的jsoninput,是不是你的根元素既不是字典也不是数组? 文档说你必须在这种情况下指定NSJSONReadingAllowFragments作为选项。

 #import <Foundation/Foundation.h> int main(int argc, char *argv[]) { NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init]; NSData *jsonData = [@"{ \"key1\": \"value1\" }" dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary *jsonObject=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil]; NSLog(@"jsonObject is %@",jsonObject); [p release]; } 

输出:

 2012-09-26 16:06:51.610 Untitled[19164:707] jsonObject is { key1 = value1; } 
 NSError* error; NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

这只是顶级post的一个更简洁的版本。

检查这个链接,我相信这会帮助你。 但是这只会工作和以上的ios 5.确保你使用的ios 5或以上的。