RestKit JSON嵌套方括号

时间:2012-01-24 01:57:52

标签: objective-c ios json cocoa-touch restkit

对于我的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

1 个答案:

答案 0 :(得分:0)

在第一个实例中fromTrigger是一个字典,在第二个实例中fromTrigger是一个数组或一个项目,该项目是一个字典。

请注意,在JSON的说法中,dictionaryobject

什么是ActianTriggers?映射会内省对象以确定要进行的映射类型。

来自RKObjectMapping documentation(粗体是我的):
1. keyPath属性。定义应在keyPath中找到的值进行转换并将其分配给属性指定的属性。要执行的转换由在运行时检查目标属性的类型确定。

请参阅Introducing JSON