Skip to content

Commit f5a2925

Browse files
committed
1.0.5: Fix issue with null json in json.
1 parent 4913f36 commit f5a2925

File tree

3 files changed

+37
-31
lines changed

3 files changed

+37
-31
lines changed

jsony.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = "1.0.4"
1+
version = "1.0.5"
22
author = "Andre von Houck"
33
description = "A loose direct to object json parser with hooks."
44
license = "MIT"

src/jsony.nim

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -768,37 +768,40 @@ proc dumpHook*[T](s: var string, v: HashSet[T]|OrderedSet[T]) =
768768

769769
proc dumpHook*(s: var string, v: JsonNode) =
770770
## Dumps a regular json node.
771-
case v.kind:
772-
of JObject:
773-
s.add '{'
774-
var i = 0
775-
for k, e in v.pairs:
776-
if i != 0:
777-
s.add ","
778-
s.dumpHook(k)
779-
s.add ':'
780-
s.dumpHook(e)
781-
inc i
782-
s.add '}'
783-
of JArray:
784-
s.add '['
785-
var i = 0
786-
for e in v:
787-
if i != 0:
788-
s.add ","
789-
s.dumpHook(e)
790-
inc i
791-
s.add ']'
792-
of JNull:
771+
if v == nil:
793772
s.add "null"
794-
of JInt:
795-
s.dumpHook(v.getInt)
796-
of JFloat:
797-
s.dumpHook(v.getFloat)
798-
of JString:
799-
s.dumpHook(v.getStr)
800-
of JBool:
801-
s.dumpHook(v.getBool)
773+
else:
774+
case v.kind:
775+
of JObject:
776+
s.add '{'
777+
var i = 0
778+
for k, e in v.pairs:
779+
if i != 0:
780+
s.add ","
781+
s.dumpHook(k)
782+
s.add ':'
783+
s.dumpHook(e)
784+
inc i
785+
s.add '}'
786+
of JArray:
787+
s.add '['
788+
var i = 0
789+
for e in v:
790+
if i != 0:
791+
s.add ","
792+
s.dumpHook(e)
793+
inc i
794+
s.add ']'
795+
of JNull:
796+
s.add "null"
797+
of JInt:
798+
s.dumpHook(v.getInt)
799+
of JFloat:
800+
s.dumpHook(v.getFloat)
801+
of JString:
802+
s.dumpHook(v.getStr)
803+
of JBool:
804+
s.dumpHook(v.getBool)
802805

803806
proc toJson*[T](v: T): string =
804807
dumpHook(result, v)

tests/test_json_in_json.nim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,6 @@ block:
2424

2525
let ns = """[123, +123, -123, 123.456, +123.456, -123.456, 123.456E9, +123.456E9, -123.456E9]"""
2626
doAssert $ns.fromJson() == """[123,123,-123,123.456,123.456,-123.456,123456000000.0,123456000000.0,-123456000000.0]"""
27+
28+
var foo = Entry()
29+
doAssert toJson(foo) == """{"name":"","data":null}"""

0 commit comments

Comments
 (0)