Skip to content

Commit 5736b35

Browse files
committed
Parse rawjson later example.
1 parent 396d4d8 commit 5736b35

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,16 @@ type
313313
let
314314
messageData = """{"id":123,"data":{"page":"base64","arr":[1,2,3]}}"""
315315
message = messageData.fromJson(Message)
316+
316317
# make sure raw json was not parsed
317318
doAssert message.data.string == """{"page":"base64","arr":[1,2,3]}"""
319+
318320
# make sure that dumping raw json produces same result
319321
doAssert message.toJson() == messageData
320322
```
323+
324+
You can also wait to parse the json later or maybe even with different types:
325+
326+
```
327+
message.data.string.fromJson(DataPayload)
328+
```

tests/test_rawjson.nim

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,12 @@ let
1212
doAssert message.data.string == """{"page":"base64","arr":[1,2,3]}"""
1313
# make sure that dumping raw json produces same result
1414
doAssert message.toJson() == messageData
15+
16+
# you can also parse the json at some other time
17+
type
18+
DataPayload = object
19+
page: string
20+
arr: seq[uint8]
21+
let dp = message.data.string.fromJson(DataPayload)
22+
doAssert dp.page == "base64"
23+
doAssert dp.arr == @[1.uint8,2,3]

0 commit comments

Comments
 (0)