如何将JSON字符串反序列化为NSDictionary? (适用于iOS 5+) [英] How do I deserialize a JSON string into an NSDictionary? (For iOS 5+)

查看:401
本文介绍了如何将JSON字符串反序列化为NSDictionary? (适用于iOS 5+)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的iOS 5应用中,我有一个包含JSON字符串的 NSString 。我想将JSON字符串表示反序列化为本机 NSDictionary 对象。

In my iOS 5 app, I have an NSString that contains a JSON string. I would like to deserialize that JSON string representation into a native NSDictionary object.

 "{\"password\" : \"1234\",  \"user\" : \"andreas\"}"



我尝试了以下方法:



I tried the following approach:

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:@"{\"2\":\"3\"}"
                                options:NSJSONReadingMutableContainers
                                  error:&e];  



但它会引发运行时错误。我做错了什么?



But it throws the a runtime error. What am I doing wrong?

-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x1372c 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x1372c'


推荐答案

看起来你传递了一个 NSString 参数,你应该传递一个 NSData 参数:

It looks like you are passing an NSString parameter where you should be passing an NSData parameter:

NSError *jsonError;
NSData *objectData = [@"{\"2\":\"3\"}" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData
                                      options:NSJSONReadingMutableContainers 
                                        error:&jsonError];

这篇关于如何将JSON字符串反序列化为NSDictionary? (适用于iOS 5+)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆