如何将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或以上的。