summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@gmail.com>2017-11-29 20:47:56 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2017-11-30 21:34:30 +0000
commit8d6126237226a80ca4c78206c625009ce285c348 (patch)
tree9bee2ce26f225f3fae2d510e8be957a8efb1f011 /lib
parent8187e83645bbc9d536eebfab2af3b2437c3485fb (diff)
downloadNim-8d6126237226a80ca4c78206c625009ce285c348.tar.gz
Implement support for JsonNode in json.to.
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/json.nim5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/pure/json.nim b/lib/pure/json.nim
index 6153e2f03..1d2f480c4 100644
--- a/lib/pure/json.nim
+++ b/lib/pure/json.nim
@@ -1744,6 +1744,11 @@ proc createConstructor(typeSym, jsonNode: NimNode): NimNode =
       let obj = getType(typeSym)
       result = processType(typeSym, obj, jsonNode, false)
   of nnkSym:
+    # Handle JsonNode.
+    if ($typeSym).cmpIgnoreStyle("jsonnode") == 0:
+      return jsonNode
+
+    # Handle all other types.
     let obj = getType(typeSym)
     if obj.kind == nnkBracketExpr:
       # When `Sym "Foo"` turns out to be a `ref object`.