@@ -33,12 +33,16 @@ class SKCodeBuilder: NSObject {
33
33
lazy var yymodelPropertyGenericClassDicts = NSMutableDictionary ( )
34
34
lazy var handlePropertyMapper = NSMutableDictionary ( )
35
35
lazy var allKeys = [ String] ( )
36
+ lazy var blankSpace = " " ;
37
+ lazy var blankSpace2 = " " ;
38
+
36
39
// 适配json文件的注释
37
40
var commentDicts : [ String : String ] ?
41
+
38
42
// Dart => FromJson & ToJson
39
43
lazy var fromJsonString = NSMutableString ( )
40
44
lazy var toJsonString = NSMutableString ( )
41
-
45
+
42
46
var fileType : String {
43
47
get {
44
48
if config. codeType == . Swift { return " swift " }
@@ -72,7 +76,7 @@ class SKCodeBuilder: NSObject {
72
76
}
73
77
} else if config. codeType == . Dart {
74
78
hString. insert ( " \n part ' \( fileName) .m.dart'; \n \n " , at: 0 )
75
- mString. insert ( " \n part of ' \( fileName) .dart'; \n \n " , at: 0 )
79
+ mString. insert ( " \n part of ' \( fileName) .dart'; \n " , at: 0 )
76
80
}
77
81
let dateFormatter = DateFormatter ( )
78
82
dateFormatter. dateFormat = " yyyy/MM/dd "
@@ -190,21 +194,21 @@ class SKCodeBuilder: NSObject {
190
194
var modelName = config. rootModelName
191
195
if key. isBlank { // Root model
192
196
if config. superClassName. isBlank {
193
- hString. append ( " \n class \( config. rootModelName) { \n \n " )
197
+ hString. append ( " class \( config. rootModelName) { \n " )
194
198
} else {
195
- hString. append ( " \n class \( config. rootModelName) extends \( config. superClassName) { \n \n " )
199
+ hString. append ( " class \( config. rootModelName) extends \( config. superClassName) { \n " )
196
200
}
197
201
} else { // sub model
198
202
modelName = modelClassName ( with: key)
199
203
if config. superClassName. isBlank {
200
- hString. append ( " \n class \( modelName) { \n \n " )
204
+ hString. append ( " \n class \( modelName) { \n " )
201
205
} else {
202
- hString. append ( " \n class \( modelName) extends \( config. superClassName) { \n \n " )
206
+ hString. append ( " \n class \( modelName) extends \( config. superClassName) { \n " )
203
207
}
204
208
}
205
209
fromJsonString. append ( " \n \( modelName) _$ \( modelName) FromJson(Map<String, dynamic> json, \( modelName) instance) { \n " )
206
210
toJsonString. append ( " \n Map<String, dynamic> _$ \( modelName) ToJson( \( modelName) instance) { \n " )
207
- toJsonString. append ( " final Map<String, dynamic> json = new Map<String, dynamic>(); \n " )
211
+ toJsonString. append ( " final Map<String, dynamic> json = new Map<String, dynamic>(); \n " )
208
212
}
209
213
210
214
switch dictValue {
@@ -237,21 +241,21 @@ class SKCodeBuilder: NSObject {
237
241
} else if config. codeType == . Swift {
238
242
hString. append ( " /// \n var \( key) : \( modelName) ? \n " )
239
243
} else if config. codeType == . Dart {
240
- hString. append ( " \( modelName) \( key) ; \n " )
244
+ hString. append ( " \( modelName) \( key) ; \n " )
241
245
self . yymodelPropertyGenericClassDicts. setValue ( modelName, forKey: key)
242
246
let fString =
243
247
"""
244
- if (json[' \( key) '] != null) {
245
- instance. \( key) = new \( modelName) ().fromJson(json[' \( key) ']);
246
- }
248
+ \( blankSpace ) if (json['\( key) '] != null) {
249
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = new \( modelName) ().fromJson(json[' \( key) ']);
250
+ \( blankSpace ) }
247
251
248
252
"""
249
253
fromJsonString. append ( fString)
250
254
let tString =
251
255
"""
252
- if (instance. \( key) != null) {
253
- json[' \( key) '] = instance. \( key) .toJson();
254
- }
256
+ \( blankSpace ) if (instance.\( key) != null) {
257
+ \( blankSpace ) \( blankSpace2 ) json[' \( key) '] = instance. \( key) .toJson();
258
+ \( blankSpace ) }
255
259
256
260
"""
257
261
toJsonString. append ( tString)
@@ -269,20 +273,20 @@ class SKCodeBuilder: NSObject {
269
273
} else if config. codeType == . Swift {
270
274
hString. append ( " /// <#泛型#> \n var \( key) : Any? \n " )
271
275
} else if config. codeType == . Dart {
272
- hString. append ( " dynamic \( key) ; //<#泛型#> \n " )
276
+ hString. append ( " dynamic \( key) ; //<#泛型#> \n " )
273
277
let fString =
274
278
"""
275
- if (json[' \( key) '] != null) {
276
- instance. \( key) = json[' \( key) '];
277
- }
279
+ \( blankSpace ) if (json['\( key) '] != null) {
280
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = json[' \( key) '];
281
+ \( blankSpace ) }
278
282
279
283
"""
280
284
fromJsonString. append ( fString)
281
285
let tString =
282
286
"""
283
- if (instance. \( key) != null) {
284
- json[' \( key) '] = instance. \( key) ;
285
- }
287
+ \( blankSpace ) if (instance.\( key) != null) {
288
+ \( blankSpace ) \( blankSpace2 ) json[' \( key) '] = instance. \( key) ;
289
+ \( blankSpace ) }
286
290
287
291
"""
288
292
toJsonString. append ( tString)
@@ -316,15 +320,15 @@ class SKCodeBuilder: NSObject {
316
320
let headerString =
317
321
"""
318
322
319
- \( modelName) fromJson(Map<String, dynamic> json) => _$ \( modelName) FromJson(json, this);
320
- Map<String, dynamic> toJson() => _$ \( modelName) ToJson(this);
323
+ \( blankSpace ) \( modelName) fromJson(Map<String, dynamic> json) => _$ \( modelName) FromJson(json, this);
324
+ \( blankSpace ) Map<String, dynamic> toJson() => _$ \( modelName) ToJson(this);
321
325
322
326
"""
323
327
hString. append ( headerString) ;
324
328
hString. append ( " } \n " )
325
329
326
- fromJsonString. append ( " return instance; \n " ) ;
327
- toJsonString. append ( " return json; \n " ) ;
330
+ fromJsonString. append ( " return instance; \n " ) ;
331
+ toJsonString. append ( " return json; \n " ) ;
328
332
}
329
333
if !key. isBlank {
330
334
self . handleDicts. removeObject ( forKey: key)
@@ -401,22 +405,22 @@ class SKCodeBuilder: NSObject {
401
405
if let firstObject = arrayValue. first {
402
406
if firstObject is String {
403
407
// String 类型
404
- hString. append ( " List<String> \( key) ; \( singlelineCommentName ( key, firstObject as! String , false ) ) \n " )
408
+ hString. append ( " List<String> \( key) ; \( singlelineCommentName ( key, firstObject as! String , false ) ) \n " )
405
409
406
410
let fString =
407
411
"""
408
- if (json[' \( key) '] != null) {
409
- instance. \( key) = new List<String>();
410
- instance. \( key) = json[' \( key) ']?.map((v) => v?.toString())?.toList()?.cast<String>();
411
- }
412
+ \( blankSpace ) if (json['\( key) '] != null) {
413
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = new List<String>();
414
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = json[' \( key) ']?.map((v) => v?.toString())?.toList()?.cast<String>();
415
+ \( blankSpace ) }
412
416
413
417
"""
414
418
fromJsonString. append ( fString)
415
419
let tString =
416
420
"""
417
- if (instance. \( key) != null) {
418
- json[' \( key) '] = instance. \( key) ;
419
- }
421
+ \( blankSpace ) if (instance.\( key) != null) {
422
+ \( blankSpace ) \( blankSpace2 ) json[' \( key) '] = instance. \( key) ;
423
+ \( blankSpace ) }
420
424
421
425
"""
422
426
toJsonString. append ( tString)
@@ -427,24 +431,24 @@ class SKCodeBuilder: NSObject {
427
431
let modeName = modelClassName ( with: key)
428
432
self . handleDicts. setValue ( firstObject, forKey: key)
429
433
self . yymodelPropertyGenericClassDicts. setValue ( modeName, forKey: key)
430
- hString. append ( " List< \( modeName) > \( key) ; \( singlelineCommentName ( key, " " , false ) ) \n " )
434
+ hString. append ( " List< \( modeName) > \( key) ; \( singlelineCommentName ( key, " " , false ) ) \n " )
431
435
let fString =
432
436
"""
433
- if (json[' \( key) '] != null) {
434
- instance. \( key) = new List< \( modeName) >();
435
- (json[' \( key) '] as List).forEach((v) {
436
- instance. \( key) .add(new \( modeName) ().fromJson(v));
437
- });
438
- }
437
+ \( blankSpace ) if (json['\( key) '] != null) {
438
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = new List< \( modeName) >();
439
+ \( blankSpace ) \( blankSpace2 ) (json[' \( key) '] as List).forEach((v) {
440
+ \( blankSpace ) \( blankSpace2 ) \( blankSpace2 ) instance. \( key) .add(new \( modeName) ().fromJson(v));
441
+ \( blankSpace ) \( blankSpace2 ) });
442
+ \( blankSpace ) }
439
443
440
444
"""
441
445
fromJsonString. append ( fString)
442
-
446
+
443
447
let tString =
444
448
"""
445
- if (instance. \( key) != null) {
446
- json[' \( key) '] = instance. \( key) .map((v) => v.toJson()).toList();
447
- }
449
+ \( blankSpace ) if (instance.\( key) != null) {
450
+ \( blankSpace ) \( blankSpace2 ) json[' \( key) '] = instance. \( key) .map((v) => v.toJson()).toList();
451
+ \( blankSpace ) }
448
452
449
453
"""
450
454
toJsonString. append ( tString)
@@ -459,19 +463,19 @@ class SKCodeBuilder: NSObject {
459
463
460
464
let fString =
461
465
"""
462
- if (json[' \( key) '] != null) {
463
- instance. \( key) = new List<dynamic>();
464
- instance. \( key) .addAll(json[' \( key) ']);
465
- }
466
+ \( blankSpace ) if (json['\( key) '] != null) {
467
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = new List<dynamic>();
468
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) .addAll(json[' \( key) ']);
469
+ \( blankSpace ) }
466
470
467
471
"""
468
472
fromJsonString. append ( fString)
469
-
473
+
470
474
let tString =
471
475
"""
472
- if (instance. \( key) != null) {
473
- json[' \( key) '] = [];
474
- }
476
+ \( blankSpace ) if (instance.\( key) != null) {
477
+ \( blankSpace ) \( blankSpace2 ) json[' \( key) '] = [];
478
+ \( blankSpace ) }
475
479
476
480
"""
477
481
toJsonString. append ( tString)
@@ -481,7 +485,7 @@ class SKCodeBuilder: NSObject {
481
485
}
482
486
483
487
private func handleIdNumberValue( numValue: NSNumber , key: String , hString: NSMutableString , ignoreIdValue: Bool ) {
484
-
488
+
485
489
let numType = CFNumberGetType ( numValue as CFNumber )
486
490
487
491
switch numType {
@@ -493,17 +497,23 @@ class SKCodeBuilder: NSObject {
493
497
} else if config. codeType == . Swift {
494
498
hString. append ( " /// \( commentName ( key, " \( numValue) " ) ) \n var \( key) : Double? \n " )
495
499
} else if config. codeType == . Dart {
496
- hString. append ( " double \( key) ; \( singlelineCommentName ( key, " \( numValue) " ) ) \n " )
500
+ hString. append ( " double \( key) ; \( singlelineCommentName ( key, " \( numValue) " ) ) \n " )
501
+
497
502
let fString =
498
503
"""
499
- if (json[' \( key) '] != null) {
500
- instance. \( key) = json[' \( key) ']?.toDouble();
501
- }
504
+ \( blankSpace) if(json[' \( key) '] != null) {
505
+ \( blankSpace) \( blankSpace2) final \( key) = json[' \( key) '];
506
+ \( blankSpace) \( blankSpace2) if( \( key) is String) {
507
+ \( blankSpace) \( blankSpace2) \( blankSpace2) instance. \( key) = double.parse( \( key) );
508
+ \( blankSpace) \( blankSpace2) } else {
509
+ \( blankSpace) \( blankSpace2) \( blankSpace2) instance. \( key) = \( key) ?.toDouble();
510
+ \( blankSpace) \( blankSpace2) }
511
+ \( blankSpace) }
502
512
503
513
"""
504
514
fromJsonString. append ( fString)
505
515
506
- let tString = " json[' \( key) '] = instance. \( key) ; \n "
516
+ let tString = " json[' \( key) '] = instance. \( key) ; \n "
507
517
toJsonString. append ( tString)
508
518
}
509
519
@@ -515,17 +525,17 @@ class SKCodeBuilder: NSObject {
515
525
} else if config. codeType == . Swift {
516
526
hString. append ( " /// \( commentName ( key, ( numValue. boolValue == true ? " true " : " false " ) ) ) \n var \( key) : Bool = false \n " )
517
527
} else if config. codeType == . Dart {
518
- hString. append ( " bool \( key) ; \( singlelineCommentName ( key, ( numValue. boolValue == true ? " true " : " false " ) ) ) \n " )
528
+ hString. append ( " bool \( key) ; \( singlelineCommentName ( key, ( numValue. boolValue == true ? " true " : " false " ) ) ) \n " )
519
529
let fString =
520
530
"""
521
- if (json[' \( key) '] != null) {
522
- instance. \( key) = json[' \( key) '];
523
- }
531
+ \( blankSpace ) if (json['\( key) '] != null) {
532
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = json[' \( key) '];
533
+ \( blankSpace ) }
524
534
525
535
"""
526
536
fromJsonString. append ( fString)
527
537
528
- let tString = " json[' \( key) '] = instance. \( key) ; \n "
538
+ let tString = " json[' \( key) '] = instance. \( key) ; \n "
529
539
toJsonString. append ( tString)
530
540
}
531
541
} else {
@@ -561,24 +571,31 @@ class SKCodeBuilder: NSObject {
561
571
}
562
572
563
573
if config. codeType == . Dart {
564
- hString. append ( " int \( key) ; \( singlelineCommentName ( key, " \( intValue) " ) ) \n " )
574
+ hString. append ( " int \( key) ; \( singlelineCommentName ( key, " \( intValue) " ) ) \n " )
575
+
565
576
let fString =
566
577
"""
567
- if (json[' \( key) '] != null) {
568
- instance. \( key) = json[' \( key) ']?.toInt();
569
- }
578
+ \( blankSpace) if(json[' \( key) '] != null) {
579
+ \( blankSpace) \( blankSpace2) final \( key) = json[' \( key) '];
580
+ \( blankSpace) \( blankSpace2) if( \( key) is String) {
581
+ \( blankSpace) \( blankSpace2) \( blankSpace2) instance. \( key) = int.parse( \( key) );
582
+ \( blankSpace) \( blankSpace2) } else {
583
+ \( blankSpace) \( blankSpace2) \( blankSpace2) instance. \( key) = \( key) ?.toInt();
584
+ \( blankSpace) \( blankSpace2) }
585
+ \( blankSpace) }
570
586
571
587
"""
588
+
572
589
fromJsonString. append ( fString)
573
590
574
- let tString = " json[' \( key) '] = instance. \( key) ; \n "
591
+ let tString = " json[' \( key) '] = instance. \( key) ; \n "
575
592
toJsonString. append ( tString)
576
593
}
577
594
}
578
595
579
596
/// String
580
597
private func handleIdStringValue( idValue: String , key: String , hString: NSMutableString , ignoreIdValue: Bool ) {
581
-
598
+
582
599
if config. codeType == . OC {
583
600
if key == " id " && !ignoreIdValue {
584
601
// 字符串id 替换成 itemId
@@ -601,24 +618,24 @@ class SKCodeBuilder: NSObject {
601
618
} else if config. codeType == . Dart {
602
619
if key == " id " && !ignoreIdValue {
603
620
self . handlePropertyMapper. setValue ( " id " , forKey: " itemId " )
604
- hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue) ) \n " )
621
+ hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue) ) \n " )
605
622
} else {
606
623
if idValue. count > 12 {
607
- hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue, false ) ) \n " )
624
+ hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue, false ) ) \n " )
608
625
} else {
609
- hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue) ) \n " )
626
+ hString. append ( " String \( key) ; \( singlelineCommentName ( key, idValue) ) \n " )
610
627
}
611
628
}
612
629
let fString =
613
630
"""
614
- if (json[' \( key) '] != null) {
615
- instance. \( key) = json[' \( key) ']?.toString();
616
- }
631
+ \( blankSpace ) if (json['\( key) '] != null) {
632
+ \( blankSpace ) \( blankSpace2 ) instance. \( key) = json[' \( key) ']?.toString();
633
+ \( blankSpace ) }
617
634
618
635
"""
619
636
fromJsonString. append ( fString)
620
637
621
- let tString = " json[' \( key) '] = instance. \( key) ; \n "
638
+ let tString = " json[' \( key) '] = instance. \( key) ; \n "
622
639
toJsonString. append ( tString)
623
640
}
624
641
}
0 commit comments