diff options
Diffstat (limited to 'v_windows/v/examples/json.v')
-rw-r--r-- | v_windows/v/examples/json.v | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/v_windows/v/examples/json.v b/v_windows/v/examples/json.v new file mode 100644 index 0000000..841d9e2 --- /dev/null +++ b/v_windows/v/examples/json.v @@ -0,0 +1,40 @@ +import json + +struct User { + name string + age int +mut: + is_registered bool +} + +fn main() { + s := '[{ "name":"Frodo", "age":25}, {"name":"Bobby", "age":10}]' + mut 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') + } else { + users[i].register() + println('$user.name is registered') + } + } + // Let's encode users again just for fun + println('') + println(json.encode(users)) +} + +fn (u User) can_register() bool { + return u.age >= 16 +} + +fn (mut u User) register() { + u.is_registered = true +} |