对于我的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我想要实现第一个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
答案 0 :(得分:0)
在第一个实例中fromTrigger
是一个字典,在第二个实例中fromTrigger
是一个数组或一个项目,该项目是一个字典。
请注意,在JSON的说法中,dictionary
是object
。
什么是ActianTriggers
?映射会内省对象以确定要进行的映射类型。
来自RKObjectMapping
documentation(粗体是我的):
1. keyPath属性。定义应在keyPath中找到的值进行转换并将其分配给属性指定的属性。要执行的转换由在运行时检查目标属性的类型确定。
请参阅Introducing JSON。