ios - 如何将 JSON 字符串反序列化为 NSDictionary? (适用于 iOS 5+)

标签 ios json ios5 nsstring nsdictionary

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

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

我尝试了以下方法:

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

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

-[__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 参数:

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

关于ios - 如何将 JSON 字符串反序列化为 NSDictionary? (适用于 iOS 5+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8606444/

相关文章:

ios - 如何在 swift 3 中生成 OAuth1 HMAC SHA1 签名

ios - 如何使用 iOS AVFoundation 在播放视频文件的帧时获得通知?

javascript - 显示 GeoJson 文件中的一个 map 标记

iPhone SDK 6 启动带有语音导航方向的 map

iphone 的 Python 服务器端推送通知

ios - Swift 中的 NSDate 排序

android - 在 hashmap 中搜索字符串并删除

c# - 如何动态使用 Concat 删除空列表

iphone - iOS MKMapView 和 MKPolyLine

ios - iPhoto 中显示另一个滑动工具栏的按钮