diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-05-31 13:17:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-31 22:17:52 +0200 |
commit | 369a7d12467831295c12f5f51aa8c69ec3b3596a (patch) | |
tree | 5ecd62d9c84f89b21959b6686a046aa97d2d09a0 /tests | |
parent | 9559350e34a62614d1f7de0945095a4c4f4f5ece (diff) | |
download | Nim-369a7d12467831295c12f5f51aa8c69ec3b3596a.tar.gz |
jsonutils.toJson now serializes JsonNode as is by default (#18097)
* jsonutils.toJson now serializes JsonNode as is (without deep copy nor treating it as a regular ref object) * JsonNodeMode
Diffstat (limited to 'tests')
-rw-r--r-- | tests/stdlib/tjsonutils.nim | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/stdlib/tjsonutils.nim b/tests/stdlib/tjsonutils.nim index 62486b896..88c05facf 100644 --- a/tests/stdlib/tjsonutils.nim +++ b/tests/stdlib/tjsonutils.nim @@ -91,6 +91,28 @@ template fn() = doAssert b2.ord == 1 # explains the `1` testRoundtrip(a): """[1,2,3]""" + block: # JsonNode + let a = ((1, 2.5, "abc").toJson, (3, 4.5, "foo")) + testRoundtripVal(a): """[[1,2.5,"abc"],[3,4.5,"foo"]]""" + + block: + template toInt(a): untyped = cast[int](a) + + let a = 3.toJson + let b = (a, a) + + let c1 = b.toJson + doAssert c1[0].toInt == a.toInt + doAssert c1[1].toInt == a.toInt + + let c2 = b.toJson(ToJsonOptions(jsonNodeMode: joptJsonNodeAsCopy)) + doAssert c2[0].toInt != a.toInt + doAssert c2[1].toInt != c2[0].toInt + doAssert c2[1] == c2[0] + + let c3 = b.toJson(ToJsonOptions(jsonNodeMode: joptJsonNodeAsObject)) + doAssert $c3 == """[{"isUnquoted":false,"kind":2,"num":3},{"isUnquoted":false,"kind":2,"num":3}]""" + block: # ToJsonOptions let a = (me1, me2) doAssert $a.toJson() == "[1,2]" |