summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-02-06 08:16:56 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-02-06 08:16:56 +0100
commit86b233dff9fb5fc3085219f3749b8e1646113e64 (patch)
treec4767e5217e3a2207fe97584cb74ceda99717ff9
parent4610cb3ae9c41237e662faf30a340a61fac51d1a (diff)
parent11f055c652afbc0ef48ece52b2542c08c58c9961 (diff)
downloadNim-86b233dff9fb5fc3085219f3749b8e1646113e64.tar.gz
Merge pull request #3829 from def-/json-fix-empty
Fix json.`%*` for empty objects
-rw-r--r--lib/pure/json.nim10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/pure/json.nim b/lib/pure/json.nim
index ab7d18bd8..f672a0c1b 100644
--- a/lib/pure/json.nim
+++ b/lib/pure/json.nim
@@ -712,17 +712,21 @@ proc `%`*(elements: openArray[JsonNode]): JsonNode =
 
 proc toJson(x: NimNode): NimNode {.compiletime.} =
   case x.kind
-  of nnkBracket:
+  of nnkBracket: # array
     result = newNimNode(nnkBracket)
     for i in 0 .. <x.len:
       result.add(toJson(x[i]))
 
-  of nnkTableConstr:
+  of nnkTableConstr: # object
     result = newNimNode(nnkTableConstr)
     for i in 0 .. <x.len:
-      assert x[i].kind == nnkExprColonExpr
+      x[i].expectKind nnkExprColonExpr
       result.add(newNimNode(nnkExprColonExpr).add(x[i][0]).add(toJson(x[i][1])))
 
+  of nnkCurly: # empty object
+    result = newNimNode(nnkTableConstr)
+    x.expectLen(0)
+
   else:
     result = x