json doc: Note about Option and reserved keywords (#13895)

This commit is contained in:
Nicolai Søborg 2020-04-07 15:14:25 +02:00 • committed by GitHub
commit b41931bf67
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -102,16 +102,23 @@
## In addition to reading dynamic data, Nim can also unmarshal JSON directly ## In addition to reading dynamic data, Nim can also unmarshal JSON directly
## into a type with the ``to`` macro. ## into a type with the ``to`` macro.
## ##
## Note: Use `Option <options.html#Option>`_ for keys sometimes missing in json
## responses, and backticks around keys with a reserved keyword as name.
##
## .. code-block:: Nim ## .. code-block:: Nim
## import json ## import json
## import options
## ##
## type ## type
## User = object ## User = object
## name: string ## name: string
## age: int ## age: int
## `type`: Option[string]
## ##
## let userJson = parseJson("""{ "name": "Nim", "age": 12 }""") ## let userJson = parseJson("""{ "name": "Nim", "age": 12 }""")
## let user = to(userJson, User) ## let user = to(userJson, User)
## if user.`type`.isSome():
## assert user.`type`.get() != "robot"
## ##
## Creating JSON ## Creating JSON
## ============= ## =============