gpt4 book ai didi

ios - 结构化对象中的 RestKit 键存在

转载 作者:行者123 更新时间:2023-11-29 12:28:16 25 4
gpt4 key购买 nike

大家好,

我想使用 RestKit 映射从我的服务器中提取的复杂 JSON 结构。

这是 JSON 结构示例:

"_cat0": [
{
"title": "category header",
"catId": 1
},
{
"id": 542232,
"title": "post post",
"time": "1421744040"
},
{
"id": 542232,
"title": "post post",
"time": "1421744040"
},
{
"id": 542232,
"title": "post post",
"time": "1421744040"
}
],

正如您在这里看到的,我们有一个 head 对象,代表每个部分的类别。 "_cat0" 实际上是一个前缀,包含 JSON 中每个类别的完整数据。这个前缀是可延续的,包含里面的所有东西,这意味着:帖子、类别数据和更多参数。

每个类别的第一个对象包含标题和类别 ID

{
"title": "category header",
"catId": 1
}

其他对象包含该类别的帖子。

我的 RestKit 问题是通过 JSON 中的值找到 Post 对象和 Category 对象。

我考虑在 head 对象中找到唯一键并将其存储为类别对象,然后将 JSON 中的任何其他对象存储为 Post。但是我没有找到任何可以帮助我确定 key 是否存在或检查对象的 key 是否可为空的函数。

这是我对这个问题的尝试:

if ([representation containsValueForKey:@"catId"]) {
// it's a category object
return categoryMapping;
} else {
// it's a post object
return postMapping;
}

但是这段代码在运行后崩溃了。

对这个问题有什么想法吗?

最佳答案

如果您已将 JSON 数组分配给名为 _cat0 的对象,您可以执行以下操作:

for (NSDictionary *object in _cat0) {
if ([[object allKeys] contains:@"catId"]) {
// Process object as category metadata.
} else {
// Process object as a post.
}
}

如果您可以控制 JSON 响应,我强烈建议您使其结构更有意义。类似的东西:

"_cat0": {
"title": "category header",
"catId": 1
"posts": [
{
"id": 542232,
"title": "post post",
"time": "1421744040"
},
{
"id": 542232,
"title": "post post",
"time": "1421744040"
},
{
"id": 542232,
"title": "post post",
"time": "1421744040"
}
]
},

关于ios - 结构化对象中的 RestKit 键存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com