2019-06-23 13:57:58 +03:00
|
|
|
import json
|
|
|
|
|
|
|
|
struct User {
|
2021-02-23 20:43:44 +03:00
|
|
|
name string
|
|
|
|
age int
|
2019-06-23 13:57:58 +03:00
|
|
|
mut:
|
|
|
|
is_registered bool
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
s := '[{ "name":"Frodo", "age":25}, {"name":"Bobby", "age":10}]'
|
2020-05-11 15:38:25 +03:00
|
|
|
mut users := json.decode([]User, s) or {
|
2019-06-23 13:57:58 +03:00
|
|
|
eprintln('Failed to parse json')
|
|
|
|
return
|
|
|
|
}
|
|
|
|
for user in users {
|
2022-11-15 16:53:13 +03:00
|
|
|
println('${user.name}: ${user.age}')
|
2019-06-23 13:57:58 +03:00
|
|
|
}
|
|
|
|
println('')
|
|
|
|
for i, user in users {
|
2022-11-15 16:53:13 +03:00
|
|
|
println('${i}) ${user.name}')
|
2019-06-23 13:57:58 +03:00
|
|
|
if !user.can_register() {
|
2022-11-15 16:53:13 +03:00
|
|
|
println('Cannot register ${user.name}, they are too young')
|
2020-05-11 15:38:25 +03:00
|
|
|
} else {
|
|
|
|
users[i].register()
|
2022-11-15 16:53:13 +03:00
|
|
|
println('${user.name} is registered')
|
2019-06-23 13:57:58 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
// Let's encode users again just for fun
|
|
|
|
println('')
|
|
|
|
println(json.encode(users))
|
|
|
|
}
|
|
|
|
|
|
|
|
fn (u User) can_register() bool {
|
|
|
|
return u.age >= 16
|
|
|
|
}
|
|
|
|
|
2020-05-17 14:51:18 +03:00
|
|
|
fn (mut u User) register() {
|
2019-06-23 13:57:58 +03:00
|
|
|
u.is_registered = true
|
|
|
|
}
|