objective-c - 没有值的 AFNetworking JSON 数组

标签 objective-c ios json afnetworking

我在使用 AFNetworking 从具有以下格式的 API 获取 JSON 信息时遇到问题:

{
    "result": [
        [
            {
                "user": "test user",
                "password": "test password",
                "company": "test company"
            }
        ]
    ]
}

注意 {[[{}]]}(双方括号)。 但只有一个值“结果”。

我收到错误:

ApiTest[83166:c07] -[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x7136a30
ApiTest[83166:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x7136a30'
*** First throw call stack:
(0x1da6012 0x123de7e 0x1e314bd 0x1d95bbc 0x1d9594e 0x3d60 0x3122 0x16909 0x179953f 0x17ab014 0x179b7d5 0x1d4caf5 0x1d4bf44 0x1d4be1b 0x21397e3 0x2139668 0x18565c 0x2a9d 0x29c5)
libc++abi.dylib: terminate called throwing an exception

当我在本地设置文件并仅使用一组方括号“{[{}]}”时,我的 AFNetworking/JSON 项目代码可以很好地处理 JSON 数据。

{
    "results": [
        {
            "user": "test user",
            "password": "test password",
            "company": "test company"
        }
    ]
}

因此,如果没有双方括号集,我可以使用以下方法成功获得“结果”:

self.results = [jsonObject objectForKey:@"result"];

如果我的项目是 javascript,我会使用类似的东西:

var userId = data.result[0][0].user;

有谁知道如何使用 Objective C 正确选择我的数组? 我花了几天时间进行调查,但我陷入困境。

提前致谢。

最佳答案

问题是你在另一个数组中获取一个数组,所以你需要这样做

NSArray *array = [jsonObject objectForKey:@"result"];
if (array.count > 0)
    self.results = [array objectAtIndex:0];

关于objective-c - 没有值的 AFNetworking JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041644/

相关文章:

c# - 非 JavaScript 应用程序中的 JSON

javascript - 将组合 JSON 文件加载到 Google map 上

iphone - 如何使用 addSkipBackupAttributeToItemAtURL API?

iphone - 在核心数据(Objective-C,iPhone,Xcode)中选择不同的值(2个或更多)

ios - Debug模式下和试飞部署后的不同应用显示分辨率

iOS:从另一个应用程序打开一个应用程序的文档并保存回被调用的应用程序

ios - 从 plist 中的一组元素中获取唯一元素

objective-c - 在没有 UIWebView 的情况下打开 URL 以在服务器上启动进程

ios - UIPageViewController 中的奇怪约束行为

javascript - React 组件在 JSON 对象上执行 foreach 返回空