File tree 1 file changed +25
-0
lines changed
KakaJSONTests/JSON_To_Model
1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -259,6 +259,31 @@ class JTM_05_KeyMapping: XCTestCase {
259
259
XCTAssert ( team. captainName == captainName)
260
260
}
261
261
262
+ func testComplex_JSONKeyWithDot_bestMatch( ) {
263
+ struct Model : Convertible {
264
+ var valueA : String ?
265
+ var valueB : String ?
266
+
267
+ func kj_modelKey( from property: Property ) -> ModelPropertyKey {
268
+ switch property. name {
269
+ case " valueA " : return " a.0.a "
270
+ case " valueB " : return " b.0.b.0.b "
271
+ default : return property. name
272
+ }
273
+ }
274
+ }
275
+
276
+ let json : [ String : Any ] = [
277
+ " a " : [ " l " , " u " , " o " ] ,
278
+ " b " : [
279
+ [ " b " : [ " x " , " i " , " u " ] ]
280
+ ]
281
+ ]
282
+ let model = json. kj. model ( Model . self)
283
+ XCTAssert ( model. valueA == " l " )
284
+ XCTAssert ( model. valueB == " x " )
285
+ }
286
+
262
287
func testConfig1( ) {
263
288
// Global Config
264
289
ConvertibleConfig . setModelKey { property in
You can’t perform that action at this time.
0 commit comments