* fix #15835

* add tests
This commit is contained in:
flywind
2020-11-04 14:24:40 +08:00
committed by GitHub
parent b0e26d8fbf
commit 7d640e0943
2 changed files with 19 additions and 0 deletions

View File

@@ -1052,6 +1052,8 @@ when defined(nimFixedForwardGeneric):
dst = jsonNode.bval
proc initFromJson(dst: var JsonNode; jsonNode: JsonNode; jsonPath: var string) =
if jsonNode == nil:
raise newException(KeyError, "key not found: " & jsonPath)
dst = jsonNode.copy
proc initFromJson[T: SomeInteger](dst: var T; jsonNode: JsonNode, jsonPath: var string) =

17
tests/stdlib/t15835.nim Normal file
View File

@@ -0,0 +1,17 @@
import json
type
Foo = object
ii*: int
data*: JsonNode
block:
const jt = """{"ii": 123, "data": ["some", "data"]}"""
let js = parseJson(jt)
discard js.to(Foo)
block:
const jt = """{"ii": 123}"""
let js = parseJson(jt)
doAssertRaises(KeyError):
echo js.to(Foo)