一尘不染

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

json

我正在使用JSON框架编写iPhone本机应用程序。

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

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

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

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

谢谢,Mike Seattle


阅读 274

收藏
2020-07-27

共1个答案

一尘不染

没有更多细节很难说(例如,您正在使用的JSON解析代码),但是有两点让我印象深刻:

  1. 您查询的不是完整路径。在上述情况下,您需要首先获取封装模型,json响应,然后才向json响应字典询问authenticationFlag值:

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

  1. 也许您使用的是c字符串("")而不是NSStrings(@"")作为键(尽管这可能会崩溃,甚至无法编译)。密钥应该是可以转换为id的东西。

尽管可能,两者都可能是错误的,所以请提供更多详细信息。

2020-07-27