RestKit JSON вложенные квадратные скобки - PullRequest
0 голосов
/ 24 января 2012

Для моего 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"]; 

ОБНОВЛЕНИЕ: Спасибо за быстрые ответы, мой вопрос заключается в том, как я могу получить свой JSON для "FromTrigger""блок должен иметь только фигурные скобки, а не квадратные скобки также.Из двух приведенных выше JSON я хочу получить формат первого.Я требую этого, потому что другой мудрый веб-сервис выдает ошибку.

ActianTriggers Class (Ниже приведен заголовочный файл, .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 голосов
/ 24 января 2012

В первом случае fromTrigger - это словарь, во втором случае fromTrigger - это массив или один элемент, а этот элемент - словарь.

Обратите внимание, что на языке JSON dictionary - этоobject.

Что такое ActianTriggers?Сопоставление анализирует объект, чтобы определить тип создаваемого сопоставления.

Из RKObjectMapping документации (жирный шрифт принадлежит мне):
1. keyPath для атрибута.Определяет, что значение, найденное в keyPath, должно быть преобразовано и присвоено свойству, указанному атрибутом.Преобразование, которое необходимо выполнить, определяется проверкой типа целевого свойства во время выполнения.

См. Представление JSON .

...