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

在我的 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];

https://stackoverflow.com/questions/8606444/

相关文章:

python - 如何列出目录的所有文件?

python - 如果 __name__ == "__main__": do? 会怎样

python - 如何按值对字典进行排序?

python - 如何检查文件是否存在无异常?

python - Python有三元条件运算符吗?

python - 如何安全地创建嵌套目录?

javascript - 将对象字符串转换为 JSON

python - Python 中的元类是什么?

python - 如何执行程序或调用系统命令?

python - Python 是否有字符串 'contains' 子字符串方法?