iOS:NSError (JSON) 到 NSMutableDictionary

Posted

技术标签:

【中文标题】iOS:NSError (JSON) 到 NSMutableDictionary【英文标题】:iOS: NSError (JSON) to NSMutableDictionary 【发布时间】:2013-12-17 20:58:13 【问题描述】:

我正在调用一个块,我需要将错误(返回 JSON)转换为 NSDictionary。

代码:

[endPoint updateModel:self.model withDomain:A_DOMAIN successBlock:^

 errorBlock:^(NSError *error) 
    NSLog (@"Logging Error: %@", error);
];

日志:

2013-12-17 12:50:43.190 testApp[79103:70b]Logging Error: [Line 27] response string - ["value":"sdfdsfewr","validator":"pattern","property":"profile.location.zip","expected":null,"message":"not a valid format ZIP code"]

我想将 *error 转换为 NSDictionary?谢谢

【问题讨论】:

endPoint是一个什么样的对象,updateModel:withDomain:方法是从哪里来的? 我相信 endPoint 是一个用于在 JSON 中与后端对话的块。 您使用什么框架与后端通信? - 您在 NSLog 输出中看到的是错误 description。有了关于所用方法的更多信息,就有可能提取 JSON 部分。 在从 JSON 转换之前,您需要去掉“[Line 27] 响应字符串 -”。 热舔。那成功了。谢谢。如果您想输入作为答案,我会将其标记为正确。 【参考方案1】:

“错误”对象的日志看起来不像 NSError 对象,而是看起来像某种字典。也许它是一个 JSON 填充的 NSString?在这种情况下,您需要使用此处所述的 NSJSONSerialization 将其转换为 NSDictionary:

NSJSONSerialization from NSString

【讨论】:

【参考方案2】:

来自您的响应字符串,即:

["value":"sdfdsfewr","validator":"pattern","property":"profile.location.zip","expected":null,"message":"not a valid format ZIP code"].

它看起来不像一个 NSError 对象。但我正在考虑你有正确的 NSError 对象并回答你的问题,有一种非常简单的方法可以从 NSError 中获取字典,如下所示 -

NSDictionary *jsonDictionary;
NSError *error = 'error to be converted to dictionary';

jsonDictionary = error.userInfo;

希望这能回答你的问题。

【讨论】:

目前不需要此答案,因为它是在 2013 年提出的。它也没有正确描述问题。如果你能看到,OP 已经在 cmets 部分得到了正确答案。

以上是关于iOS:NSError (JSON) 到 NSMutableDictionary的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Objective-C 的 init 中包含 NSError** 作为参数吗?

iOS 将字符串发送到 JSON 服务器

如何将 JSON 数据发布到 iOS 中的服务器?

如何将 json 从 iOS 设备发送到 Rails 服务器

Facebook iOS SDK 3.2.1 - [NSError fberrorShouldNotifyUser]:无法识别的选择器发送到实例

iOS 7 和 8 之间不同的 NSError 本地化描述