Fix deserialize nested map error in objc client

This commit is contained in:
geekerzp 2015-07-28 10:51:20 +08:00
parent b843b55339
commit cc45ff17cb
3 changed files with 17 additions and 2 deletions

View File

@ -413,7 +413,7 @@ static void (^reachabilityChangeBlock)(int);
}
// map
NSString *dictPat = @"NSDictionary\\* /\\* (.+), (.+) \\*/";
NSString *dictPat = @"NSDictionary\\* /\\* (.+?), (.+) \\*/";
regexp = [NSRegularExpression regularExpressionWithPattern:dictPat
options:NSRegularExpressionCaseInsensitive
error:nil];

View File

@ -413,7 +413,7 @@ static void (^reachabilityChangeBlock)(int);
}
// map
NSString *dictPat = @"NSDictionary\\* /\\* (.+), (.+) \\*/";
NSString *dictPat = @"NSDictionary\\* /\\* (.+?), (.+) \\*/";
regexp = [NSRegularExpression regularExpressionWithPattern:dictPat
options:NSRegularExpressionCaseInsensitive
error:nil];

View File

@ -116,4 +116,19 @@
XCTAssertEqualObjects([result[@"pet"] _id], @119);
}
- (void)testDeserializeNestedMap {
NSDictionary *data =
@{
@"foo": @{
@"bar": @1
}
};
NSDictionary *result = [apiClient deserialize:data class:@"NSDictionary* /* NSString, NSDictionary* /* NSString, NSNumber */ */"];
XCTAssertTrue([result isKindOfClass:[NSDictionary class]]);
XCTAssertTrue([result[@"foo"] isKindOfClass:[NSDictionary class]]);
XCTAssertTrue([result[@"foo"][@"bar"] isKindOfClass:[NSNumber class]]);
}
@end