@@ -16,78 +16,35 @@ class Test2ViewController: BaseViewController {
1616 override func viewDidLoad( ) {
1717 super. viewDidLoad ( )
1818
19- let dict : [ String : Any ] = [
20-
2119
22- " url " : [ " http://www.baidu.com " ] ,
23-
24- " float " : 188.5 ,
25- //
26- " date " : 1722152312 ,
20+ }
21+
22+ override func touchesBegan( _ touches: Set < UITouch > , with event: UIEvent ? ) {
23+ let dict : [ String : Any ] = [
24+ " my_name " : " Tom " ,
25+ " student " : [
26+ " my_age " : " 18 "
27+ ]
2728 ]
28-
29- guard let model = Model . deserialize ( from: dict) else { return }
30- smartPrint ( value: model)
31-
32- guard let transDict = model. toJSONString ( prettyPrint: true ) else { return }
33- print ( transDict)
29+ let person = Person . deserialize ( from: dict, options: [ . key( . fromSnakeCase) ] )
30+ print ( " 1111 " )
3431 }
35- }
36-
37-
38- extension Test2ViewController {
39- struct Model : SmartCodable {
40- var url : [ URL ] ?
41- // var float: CGFloat = 100
42- // var date: Date? = Date()
43-
32+
33+ class Person : SmartCodable {
34+ var myName : String ?
35+ var student : Student ?
36+ required init ( ) { }
37+ }
38+ class Student : SmartCodable {
39+ var myAge : String ?
40+ required init ( ) { }
4441
45- static func mappingForValue( ) -> [ SmartValueTransformer ] ? {
46- [
47- CodingKeys . url <--- URLTransformer ( ) ,
48- // CodingKeys.float <--- FloatTranformer(),
49- // CodingKeys.date <--- SmartDateTransformer(strategy: .timestamp)
42+ static func mappingForKey( ) -> [ SmartKeyTransformer ] ? {
43+ return [
44+ CodingKeys . myAge <--- " my_name "
5045 ]
5146 }
5247 }
5348}
54- struct FloatTranformer : ValueTransformable {
55- func transformFromJSON( _ value: Any ) -> Object ? {
56- return 200.0
57- }
58-
59- func transformToJSON( _ value: Object ) -> JSON ? {
60- return nil
61- }
62-
63- typealias Object = CGFloat
64-
65- typealias JSON = String
66- }
67- public struct URLTransformer : ValueTransformable {
6849
69- public typealias JSON = [ String ]
70- public typealias Object = [ URL ]
71- private let shouldEncodeURLString : Bool
72- private let prefix : String ?
7350
74- /**
75- Initializes a URLTransformer with an option to encode the URL string before converting it to NSURL
76- - parameter shouldEncodeUrlString: When true (the default value), the string is encoded before being passed
77- - returns: an initialized transformer
78- */
79- public init ( prefix: String ? = nil , shouldEncodeURLString: Bool = true ) {
80- self . shouldEncodeURLString = shouldEncodeURLString
81- self . prefix = prefix
82- }
83-
84-
85- public func transformFromJSON( _ value: Any ) -> [ URL ] ? {
86- let url = URL ( string: " 1 " ) !
87- return [ url]
88- }
89-
90- public func transformToJSON( _ value: [ URL ] ) -> [ String ] ? {
91- return [ " 1 " , " 2 " , " 3 " ]
92- }
93- }
0 commit comments