Я использую JSON все время в моих программахИспользования RestKit для отображения моих объектов
в моей Android приложения, я использую Gson для deserialise JSON объектов, которые приходят с сервера.
Что я люблю Gson, является то, что все, что нужно сделать, это создать класс POJO с заданными атрибутами, и они отображаются автоматически с Gson.fromJSON(JsonString, POJO.class);
, и если я хочу, чтобы объекты, которые будут называться иначе, чем то, что они приходят с сервера, я просто добавляю аннотацию @SerializedName («имя сервера») `
Есть ли способ сделать это в RestKit
? Кажется, очень утомительно назвать все свойства вручную? Что делать, если я добавляю/удаляю/переименовываю свойства?
В настоящее время это мой класс
@interface Test
@property (nonatomic,assign) int prop1;
@property (nonatomic, assign) NSString *prop2;
@end
это мой JSON:
{ "prop1":10, "prop2":"test"}
это мое отображение
//map class component
RKObjectMapping *statsMapping = [RKObjectMapping mappingForClass:[Test class]];
[statsMapping addAttributeMappingsFromDictionary:@{@"prop1":@"prop1",@"prop2":@"prop2"}];
// Register our mappings with the provider using a response descriptor
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
, что я хотел бы для RestKit
, чтобы отобразить мои свойства (если они существуют как в JSON
, так и в моем классе), не называя их имя
мне нужно сделать отражение, или делает RestKit? –
RestKit отражает тип данных переменных, чтобы определить, какие переводы требуются во время сопоставления, но он не отражает, какие переменные существуют, чтобы знать, что нужно отображать, - для этого нужно сказать, какие имена ключей должны отображаться. – Wain
Почему RestKit не создала схему сопоставления по умолчанию, для которой она опирается на имена переменных для сопоставления, и если некоторые переменные отсутствуют, они остаются нулевыми или отбрасываются в зависимости от того, где они расположены (JSONvsClass)? –