| 1 | import x.json2 { Any, decode } |
| 2 | |
| 3 | struct Income { |
| 4 | mut: |
| 5 | email string |
| 6 | code int |
| 7 | } |
| 8 | |
| 9 | pub fn structuring[T](res Any) T { |
| 10 | mut typ := T{} |
| 11 | res_map := res.as_map() |
| 12 | |
| 13 | $for field in T.fields { |
| 14 | if field.name in res_map { |
| 15 | $if field.typ is int { |
| 16 | typ.$(field.name) = 2 |
| 17 | } |
| 18 | typ.$(field.name) = 3 |
| 19 | } |
| 20 | } |
| 21 | return typ |
| 22 | } |
| 23 | |
| 24 | fn main() { |
| 25 | res := decode[Any]('{ |
| 26 | "email": ["sdvsdv", "sds"], |
| 27 | "code": 12 |
| 28 | }')!.as_map() |
| 29 | |
| 30 | structuring[Income](res) |
| 31 | } |
| 32 |