mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-18 08:58:39 +00:00
@@ -1697,7 +1697,7 @@ proc createConstructor(typeSym, jsonNode: NimNode): NimNode =
|
||||
|
||||
result = quote do:
|
||||
(
|
||||
if `lenientJsonNode`.isNil: `workaround`[`optionGeneric`]() else: some[`optionGeneric`](`value`)
|
||||
if `lenientJsonNode`.isNil or `jsonNode`.kind == JNull: `workaround`[`optionGeneric`]() else: some[`optionGeneric`](`value`)
|
||||
)
|
||||
of "table", "orderedtable":
|
||||
let tableKeyType = typeSym[1]
|
||||
|
||||
@@ -330,6 +330,21 @@ when isMainModule:
|
||||
doAssert jDeser[0].n2.get() == "ABC"
|
||||
doAssert jDeser[1].n2.isNone()
|
||||
|
||||
# Issue #6902
|
||||
type
|
||||
Obj = object
|
||||
n1: int
|
||||
n2: Option[int]
|
||||
n3: Option[string]
|
||||
n4: Option[bool]
|
||||
|
||||
var j0 = parseJson("""{"n1": 1, "n2": null, "n3": null, "n4": null}""")
|
||||
let j0Deser = j0.to(Obj)
|
||||
doAssert j0Deser.n1 == 1
|
||||
doAssert j0Deser.n2.isNone()
|
||||
doAssert j0Deser.n3.isNone()
|
||||
doAssert j0Deser.n4.isNone()
|
||||
|
||||
# Table[T, Y] support.
|
||||
block:
|
||||
type
|
||||
|
||||
Reference in New Issue
Block a user