diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2018-02-12 09:22:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-12 09:22:35 +0000 |
commit | 23d272f6521db458813714cd89a14869c4754d02 (patch) | |
tree | 33165994acd59b4b5d6c53e5db29d86abb66eb15 | |
parent | a4deceb13479c370f9d642e17facd92a1146a874 (diff) | |
parent | 82473238602a1fff3befe79d463f193a16a2bad5 (diff) | |
download | Nim-23d272f6521db458813714cd89a14869c4754d02.tar.gz |
Merge pull request #7205 from GULPF/json-to-fix
Fix `json.to` for types with generic parameters
-rw-r--r-- | lib/pure/json.nim | 2 | ||||
-rw-r--r-- | tests/stdlib/tjsonmacro.nim | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/pure/json.nim b/lib/pure/json.nim index b5b84863a..bbde4db5f 100644 --- a/lib/pure/json.nim +++ b/lib/pure/json.nim @@ -1896,7 +1896,7 @@ macro to*(node: JsonNode, T: typedesc): untyped = ## doAssert data.person.age == 21 ## doAssert data.list == @[1, 2, 3, 4] - let typeNode = getType(T) + let typeNode = getTypeInst(T) expectKind(typeNode, nnkBracketExpr) doAssert(($typeNode[0]).normalize == "typedesc") diff --git a/tests/stdlib/tjsonmacro.nim b/tests/stdlib/tjsonmacro.nim index 2cdd82305..a69b03426 100644 --- a/tests/stdlib/tjsonmacro.nim +++ b/tests/stdlib/tjsonmacro.nim @@ -380,4 +380,11 @@ when isMainModule: let dataDeser = to(dataParsed, Test1) doAssert dataDeser.a == 1 doAssert dataDeser.f == 6 - doAssert dataDeser.i == 9.9'f32 \ No newline at end of file + doAssert dataDeser.i == 9.9'f32 + + # deserialize directly into a table + block: + let s = """{"a": 1, "b": 2}""" + let t = parseJson(s).to(Table[string, int]) + doAssert t["a"] == 1 + doAssert t["b"] == 2 \ No newline at end of file |