diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-02-06 08:16:56 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-02-06 08:16:56 +0100 |
commit | 86b233dff9fb5fc3085219f3749b8e1646113e64 (patch) | |
tree | c4767e5217e3a2207fe97584cb74ceda99717ff9 | |
parent | 4610cb3ae9c41237e662faf30a340a61fac51d1a (diff) | |
parent | 11f055c652afbc0ef48ece52b2542c08c58c9961 (diff) | |
download | Nim-86b233dff9fb5fc3085219f3749b8e1646113e64.tar.gz |
Merge pull request #3829 from def-/json-fix-empty
Fix json.`%*` for empty objects
-rw-r--r-- | lib/pure/json.nim | 10 |
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 |