From eedc6fecd73e17be492bb5a7352ef27ef8bac7e6 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sun, 9 Apr 2017 12:48:07 +0200 Subject: Document `to` macro in JSON and add example. --- tests/stdlib/tjsonmacro.nim | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'tests/stdlib/tjsonmacro.nim') diff --git a/tests/stdlib/tjsonmacro.nim b/tests/stdlib/tjsonmacro.nim index b5d73240e..345c5a2fc 100644 --- a/tests/stdlib/tjsonmacro.nim +++ b/tests/stdlib/tjsonmacro.nim @@ -91,6 +91,7 @@ when isMainModule: doAssert result.other == node["other"].getNum() # TODO: Test object variant with set in of branch. + # TODO: Should we support heterogenous arrays? # Tests that verify the error messages for invalid data. block: @@ -141,3 +142,28 @@ when isMainModule: except: doAssert false + # Test the example in json module. + block: + let jsonNode = parseJson(""" + { + "person": { + "name": "Nimmer", + "age": 21 + }, + "list": [1, 2, 3, 4] + } + """) + + type + Person = object + name: string + age: int + + Data = object + person: Person + list: seq[int] + + var data = to(jsonNode, Data) + doAssert data.person.name == "Nimmer" + doAssert data.person.age == 21 + doAssert data.list == @[1, 2, 3, 4] \ No newline at end of file -- cgit 1.4.1-2-gfad0