Support all int, uint and float variants in json.to macro.
This commit is contained in:
parent
2bb2e6975e
commit
578ab935cb
2 changed files with 43 additions and 15 deletions
|
|
@ -354,4 +354,30 @@ when isMainModule:
|
|||
let dataDeser = to(dataParsed, Test)
|
||||
doAssert dataDeser.name == "FooBar"
|
||||
doAssert dataDeser.fallback.kind == JFloat
|
||||
doAssert dataDeser.fallback.getFloat() == 56.42
|
||||
doAssert dataDeser.fallback.getFloat() == 56.42
|
||||
|
||||
# int64, float64 etc support.
|
||||
block:
|
||||
type
|
||||
Test1 = object
|
||||
a: int8
|
||||
b: int16
|
||||
c: int32
|
||||
d: int64
|
||||
e: uint8
|
||||
f: uint16
|
||||
g: uint32
|
||||
h: uint64
|
||||
i: float32
|
||||
j: float64
|
||||
|
||||
let data = """
|
||||
{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6, "g": 7,
|
||||
"h": 8, "i": 9.9, "j": 10.10}
|
||||
"""
|
||||
|
||||
let dataParsed = parseJson(data)
|
||||
let dataDeser = to(dataParsed, Test1)
|
||||
doAssert dataDeser.a == 1
|
||||
doAssert dataDeser.f == 6
|
||||
doAssert dataDeser.i == 9.9'f32
|
||||
Loading…
Add table
Add a link
Reference in a new issue