v / examples
Raw file | 40 loc (36 sloc) | 749 bytes | Latest commit hash 017ace6ea
1import json
2
3struct User {
4 name string
5 age int
6mut:
7 is_registered bool
8}
9
10fn main() {
11 s := '[{ "name":"Frodo", "age":25}, {"name":"Bobby", "age":10}]'
12 mut users := json.decode([]User, s) or {
13 eprintln('Failed to parse json')
14 return
15 }
16 for user in users {
17 println('${user.name}: ${user.age}')
18 }
19 println('')
20 for i, user in users {
21 println('${i}) ${user.name}')
22 if !user.can_register() {
23 println('Cannot register ${user.name}, they are too young')
24 } else {
25 users[i].register()
26 println('${user.name} is registered')
27 }
28 }
29 // Let's encode users again just for fun
30 println('')
31 println(json.encode(users))
32}
33
34fn (u User) can_register() bool {
35 return u.age >= 16
36}
37
38fn (mut u User) register() {
39 u.is_registered = true
40}