Ios 地幔映射嵌套数据结构
我有一个稍微复杂的嵌套JSON对象,需要映射到Objective-C类。我认为我需要做的一件事是在映射时跳过JSON中的级别。我的意思是: 我想映射以下JSON字典:Ios 地幔映射嵌套数据结构,ios,json,Ios,Json,我有一个稍微复杂的嵌套JSON对象,需要映射到Objective-C类。我认为我需要做的一件事是在映射时跳过JSON中的级别。我的意思是: 我想映射以下JSON字典: NSDictionary *JSONDictionary = @{ @"status" : @"PASSWORD_EXPIRED", @"_embedded" : @{ @"user" : @{ @"id" :
NSDictionary *JSONDictionary = @{
@"status" : @"PASSWORD_EXPIRED",
@"_embedded" : @{
@"user" : @{
@"id" : @"00ub0oNGTSWTBKOLGLNR",
@"profile" : @{
@"login" : @"isaac@example.org",
@"firstName" : @"Isaac",
@"lastName" : @"Brock",
@"locale" : @"en_US",
@"timeZone" : @"America/Los_Angeles"
}
}
}
};
到
我以前使用以下代码来执行此操作:
+ (NSValueTransformer *)userJSONTransformer {
return [MTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSDictionary *userDict) {
return [MTLJSONAdapter modelOfClass:[User class] fromJSONDictionary:userDict error:nil];
} reverseBlock:^id(User *user) {
return [MTLJSONAdapter JSONDictionaryFromModel:user];
}];
}
同样在
+JSONKeyPathsByPropertyKey
中,我认为应该是@“user”:“\u embedded.user”
请参见-[MTLJSONAdapter transformerformerModelPropertiesOfclass:
。
@implementation Authentication
+ (NSDictionary*)JSONKeyPathsByPropertyKey {
return @{
@"expiresAt" : @"expiresAt",
@"status" : @"status",
@"sessionToken" : @"sessionToken",
@"stateToken" : @"stateToken",
@"relayState" : @"relayState",
@"user" : @"_embeded/user",
};
}
+ (NSValueTransformer *)userJSONTransformer {
return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:User.class];
}
@end
+ (NSValueTransformer *)userJSONTransformer {
return [MTLValueTransformer reversibleTransformerWithForwardBlock:^id(NSDictionary *userDict) {
return [MTLJSONAdapter modelOfClass:[User class] fromJSONDictionary:userDict error:nil];
} reverseBlock:^id(User *user) {
return [MTLJSONAdapter JSONDictionaryFromModel:user];
}];
}