import json struct Struct { a int } struct Test { a ?int b ?string c ?Struct } fn test_main() { a := json.decode(Test, '{"a": 1, "b": "foo"}')! dump(a) assert a.a != none assert a.b != none b := json.decode(Test, '{"a": 1}')! dump(b) assert b.a != none assert b.b == none c := json.decode(Test, '{"a": 1, "b": null}')! dump(b) assert c.a != none assert c.b == none d := json.decode(Test, '{"a": null, "b": null}')! dump(d) assert d.a == none assert d.b == none e := json.decode(Test, '{"a": null, "b": null, "c": null}')! dump(e) assert e.a == none assert e.b == none assert e.c == none f := json.decode(Test, '{"a": null, "b": null, "c": {"a":1}}')! dump(f) assert f.a == none assert f.b == none assert f.c != none }