mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
39 lines
680 B
V
39 lines
680 B
V
|
import json
|
||
|
|
||
|
struct User {
|
||
|
name string
|
||
|
age int
|
||
|
mut:
|
||
|
is_registered bool
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
s := '[{ "name":"Frodo", "age":25}, {"name":"Bobby", "age":10}]'
|
||
|
users := json.decode( []User, s) or {
|
||
|
eprintln('Failed to parse json')
|
||
|
return
|
||
|
}
|
||
|
for user in users {
|
||
|
println('$user.name: $user.age')
|
||
|
}
|
||
|
println('')
|
||
|
for i, user in users {
|
||
|
println('$i) $user.name')
|
||
|
if !user.can_register() {
|
||
|
println('Cannot register $user.name, they are too young')
|
||
|
}
|
||
|
}
|
||
|
// Let's encode users again just for fun
|
||
|
println('')
|
||
|
println(json.encode(users))
|
||
|
}
|
||
|
|
||
|
fn (u User) can_register() bool {
|
||
|
return u.age >= 16
|
||
|
}
|
||
|
|
||
|
fn (u mut User) register() {
|
||
|
u.is_registered = true
|
||
|
}
|
||
|
|