RestKit JSON 嵌套方括号
Posted
技术标签:
【中文标题】RestKit JSON 嵌套方括号【英文标题】:RestKit JSON nested square Brackets 【发布时间】:2012-01-24 01:57:51 【问题描述】:对于我的 JSON,我想获得以下格式:
"fromTrigger":
"id":1,
"fieldId":2,
"type":"FROM"
但是通过我的映射,我得到以下信息:
"fromTrigger":[
"id":1,
"fieldId":2,
"type":"FROM"
]
如您所见,我在第二个括号中有多余的方括号“[ ]”。
我有以下映射:
RKObjectMapping* fromTriggerMapping = [RKObjectMapping mappingForClass:[ActianTriggers class]];
[fromTriggerMapping mapKeyPath:@"id" toAttribute:@"triggerId"];
[fromTriggerMapping mapKeyPath:@"fieldId" toAttribute:@"fieldId"];
[fromTriggerMapping mapKeyPath:@"type" toAttribute:@"type"];
[fromTriggerMapping mapKeyPath:@"filters" toRelationship:@"filters" withMapping:triggerMapping serialize:YES];
[[RKObjectManager sharedManager].mappingProvider setMapping:fromTriggerMapping forKeyPath:@"fromTrigger"];
更新: 感谢您的快速回复,我的问题是如何让“FromTrigger”块的 JSON 只有大括号而不是方括号。从上面的两个 JSON 中,我想实现第一个的格式。我需要这个,因为否则 Web 服务会引发错误。
ActianTriggers 类(下面是头文件,.m 只合成这些变量):
@interface ActianTriggers : NSObject
@property (nonatomic, retain) NSString *type;
@property (nonatomic, retain) NSNumber *triggerID;
@property (nonatomic, retain) NSNumber *fieldId;
@property (nonatomic, strong) NSArray *filters;
@end
【问题讨论】:
ActianTriggers
是什么东西?
能否提供ActianTriggers的定义,以及triggerMapping?查看与 JSON 生成关联的 sn-p 也会很有帮助。我假设您正在尝试 PUT/POST,但确切的代码 sn-p 将有助于确定序列化操作发生了什么。
【参考方案1】:
在第一个实例中,fromTrigger
是一个字典,在第二个实例中,fromTrigger
是一个数组或一个项目,而该项目是一个字典。
请注意,在 JSON 术语中,dictionary
是 object
。
ActianTriggers
是什么?映射内省对象以确定要进行的映射类型。
来自RKObjectMapping
documentation(粗体字是我的):
1. keyPath 属性。定义在 keyPath 找到的值应该被转换并分配给属性指定的属性。要执行的转换是通过在运行时检查目标属性的类型来确定的。
见Introducing JSON。
【讨论】:
以上是关于RestKit JSON 嵌套方括号的主要内容,如果未能解决你的问题,请参考以下文章
restkit 映射嵌套数组为空(带有 json 响应的嵌套 restkit 请求)