v2 / vlib / json / tests / json_embed_test.v
31 lines · 26 sloc · 527 bytes · 8ebbacecd60366ac4ba68aa35f9b0e7a0e56ff61
Raw
1import json
2
3struct Json3 {
4 embed f64
5}
6
7struct Json2 {
8 Json3
9 inner []f64
10}
11
12struct Json {
13 Json2
14 test f64
15}
16
17fn test_main() {
18 str := '{"inner": [1, 2, 3, 4, 5],"test": 1.0, "embed": 2.0}'
19 data := json.decode(Json, str) or {
20 eprintln('Failed to decode json, error: ${err}')
21 return
22 }
23 println(data)
24 assert data.inner.len == 5
25 assert data.inner[0] == 1.0
26 assert data.inner[4] == 5.0
27 assert data.test == 1.0
28 assert data.embed == 2.0
29
30 assert dump(json.encode(data)) == '{"embed":2,"inner":[1,2,3,4,5],"test":1}'
31}
32