没有根 Json 元素的响应描述符
Response descriptor without root Json element
{
"id": 76,
"name": "Tom Timberley",
"gender": 1,
"follower_count": 1,
"following_count": 1,
"me_following": [{
"id": 5,
"status": "ACCEPTED",
"following_me": {
"id": 2,
"status": "ACCEPTED"
}
}]
}
没有外部 Json 对象。当我执行 RKRelationshipMapping
?
时,有什么方法可以从对象 following_me
访问根对象
我有 tables Following_me
和 User
,我想将用户数据 Json 的根映射到 Following_me
。
[following_me_mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"@root" toKeyPath:@"user" withMapping:userMapping]];
这里following_me_mapping
是Following_me
table的映射,userMapping
是User
table.[=24=的映射]
但指定 @root
无效。
[RKResponseDescriptor responseDescriptorWithMapping:mapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)
];
这就是我添加响应描述符的方式。
也许你可以使用 "MJExtension.Framework" 作为 "json to model" 数据(https://github.com/CoderMJLee/MJExtension),将这些数据显示到模型上而不是 json 数据(字典)可以简化你问题,祝好!~~
yes you can save the array of dictionary.allkeys, then put it in the for loop.
let arrayOFKeys = dictionary.allKeys
for(int i=0;i<arrayOFKeys.count;i++)
{
dictionary.valueforKey(arrayOFKeys.objectAtIndex[i]) // here you will get value and key(root) as well
//key = arrayOFKeys.objectAtIndex[i]
//value = dictionary.valueforKey(arrayOFKeys.objectAtIndex[i])
}
您似乎在倒退地思考问题,并且对您的响应描述符正在处理的内容感到困惑。
通过设置 pathPattern:nil keyPath:nil
,您的响应描述符将对您发出的任何请求处于活动状态(它不会按路径模式过滤),并将处理来自根的 JSON 有效载荷(没有要导航到的关键路径)。
因此,您的初始映射应该已经处理了根。然后为 me_following
键添加一个关系来处理该内容。在该映射中,您为 following_me
.
添加关系
通过这种方式,您可以在进行过程中向下钻取数据映射,而不是描述您想要开始钻取然后尝试再次导航回来(这需要一个相当不同的和更多的复杂的方法)。
{
"id": 76,
"name": "Tom Timberley",
"gender": 1,
"follower_count": 1,
"following_count": 1,
"me_following": [{
"id": 5,
"status": "ACCEPTED",
"following_me": {
"id": 2,
"status": "ACCEPTED"
}
}]
}
没有外部 Json 对象。当我执行 RKRelationshipMapping
?
following_me
访问根对象
我有 tables Following_me
和 User
,我想将用户数据 Json 的根映射到 Following_me
。
[following_me_mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"@root" toKeyPath:@"user" withMapping:userMapping]];
这里following_me_mapping
是Following_me
table的映射,userMapping
是User
table.[=24=的映射]
但指定 @root
无效。
[RKResponseDescriptor responseDescriptorWithMapping:mapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)
];
这就是我添加响应描述符的方式。
也许你可以使用 "MJExtension.Framework" 作为 "json to model" 数据(https://github.com/CoderMJLee/MJExtension),将这些数据显示到模型上而不是 json 数据(字典)可以简化你问题,祝好!~~
yes you can save the array of dictionary.allkeys, then put it in the for loop.
let arrayOFKeys = dictionary.allKeys
for(int i=0;i<arrayOFKeys.count;i++)
{
dictionary.valueforKey(arrayOFKeys.objectAtIndex[i]) // here you will get value and key(root) as well
//key = arrayOFKeys.objectAtIndex[i]
//value = dictionary.valueforKey(arrayOFKeys.objectAtIndex[i])
}
您似乎在倒退地思考问题,并且对您的响应描述符正在处理的内容感到困惑。
通过设置 pathPattern:nil keyPath:nil
,您的响应描述符将对您发出的任何请求处于活动状态(它不会按路径模式过滤),并将处理来自根的 JSON 有效载荷(没有要导航到的关键路径)。
因此,您的初始映射应该已经处理了根。然后为 me_following
键添加一个关系来处理该内容。在该映射中,您为 following_me
.
通过这种方式,您可以在进行过程中向下钻取数据映射,而不是描述您想要开始钻取然后尝试再次导航回来(这需要一个相当不同的和更多的复杂的方法)。