如何将 JSON 字符串反序列化为 NSDictionary?(适用于

How do I deserialize a JSON string into an NSDictionary? (For iOS 5+)(如何将 JSON 字符串反序列化为 NSDictionary?(适用于 iOS 5+))
本文介绍了如何将 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"}"

我尝试了以下方法:

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

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+)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Get an event when UIBarButtonItem menu is displayed(显示UIBarButtonItem菜单时获取事件)