You can use `JsonObject` as a standin for any object.
import json
type
RetVal = object
code: string
message: string
data: JsonNode
const js1 = """
{
"code": "tk.01",
"message": "Token in data field",
"data": "string"
}
"""
const js2 = """
{
"code": "tk.01",
"message": "Token in data field",
"data": [1, 2, 3, 4]
}
"""
const js3 = """
{
"code": "tk.01",
"message": "Token in data field",
"data": {"key": "value"}
}
"""
proc main() =
let retVal1 = parseJson(js1).to(RetVal)
echo retVal1.data.to(string)
let retVal2 = parseJson(js2).to(RetVal)
echo retVal2.data.to(seq[int])
let retVal3 = parseJson(js3).to(RetVal)
for key, value in retVal3.data.pairs():
echo key, ": ", value.to(string)
main()
# Output:
#
# string
# @[1, 2, 3, 4]
# key: value
Run