diff --git a/lib/pure/json.nim b/lib/pure/json.nim index b5b84863ac..bbde4db5f5 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 2cdd823058..a69b034264 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