objective-c - 如何使用 JSON 框架和 Objective-C/iPhone/Xcode 解析嵌套的 JSON 对象?

标签 objective-c iphone xcode json

我正在使用 JSON 框架编写一个 iPhone 原生应用。

我的应用正在使用 JSON 访问网络服务。我们发送的 JSON 数据具有嵌套对象,下面是提供的数据示例:

{
    "model": {
        "JSONRESPONSE": {
            "authenticationFlag": true,
            "sessionId": "3C4AA754D77BFBE33E0D66EBE306B8CA",
            "statusMessage": "Successful Login.",
            "locId": 1,
            "userName": "Joe Schmoe"
        }
    }
}

我在使用 objectForKey 和 valueForKey NSDictionary 方法进行解析时遇到问题。我不断收到 invalidArgumentException 运行时错误。

例如,我想查询“authenticationFlag”元素的响应数据。

谢谢, 麦克风 西雅图

最佳答案

如果没有更多细节(例如,您正在使用的 JSON 解析代码),很难说清楚,但有两件事可能让我印象深刻:

  1. 您没有使用完整路径进行查询。在上述情况下,您需要先获取封闭模型、json 响应,然后才向 json 响应字典询问 authenticationFlag 值:

    [[[jsonDict objectForKey:@"model"] objectForKey:@"JSONRESPONSE"] objectForKey:@"authenticationFlag"]

  2. 也许您正在使用 C 字符串 ("") 而不是 NSStrings (@"") 作为键(尽管这可能会严重崩溃或只是不编译)。 key 应该是不能转换为 id 的东西。

虽然可能,但两者都可能是错误的,因此请提供更多详细信息。

关于objective-c - 如何使用 JSON 框架和 Objective-C/iPhone/Xcode 解析嵌套的 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692247/

相关文章:

objective-c - 为什么我的委托(delegate)不接受 performSelectorOnMainThread :withObject:waitUntilDone:?

objective-c - 这是什么意思? "Writable atomic property ' fileManager' 无法将合成的 setter/getter 与用户定义的 setter/getter 配对”

ios - iOS 8 中未调用 CLLocationmanager updateLocations 委托(delegate)方法

objective-c - 更新到 Xcode 6 后的神秘错误

iphone - 为什么我的 OCMock 期望和 stub 在 iOS 5 中失败?

iphone - UIActivityViewController 背景颜色

c++ - 与 Poco Net 的链接错误

iphone - 如何将变量从 TableView 传递到第二个 TableView ?

iphone - CABasicAnimation 在动画完成后不更改其位置属性

objective-c - XCode Instruments UI 的一部分 - 可作为 IB 插件使用吗?