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

mib*_*rop 6 iphone xcode json objective-c

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

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

{
    "model": {
        "JSONRESPONSE": {
            "authenticationFlag": true,
            "sessionId": "3C4AA754D77BFBE33E0D66EBE306B8CA",
            "statusMessage": "Successful Login.",
            "locId": 1,
            "userName": "Joe Schmoe"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

例如,我想查询"authenticationFlag"元素的响应数据.

谢谢,迈克西雅图

小智 11

没有更多细节(例如你正在使用的JSON解析代码)很难分辨,但有两件事情让我感到害怕:

  1. 你没有用完整的路径查询.在上面的例子中,您需要首先获取封闭模型,json响应,然后才向json响应字典询问authenticationFlag值:

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

  2. 也许你正在使用c-strings("")而不是NSStrings(@"")作为键(尽管这可能会崩溃或者只是不能编译).密钥应该是可以转换为id的东西.

尽管可能,两者都可能是假的,所以请包含更多细节.