Skip to content

Commit b6f9d2f

Browse files
committed
Readme update to reflect api change.
1 parent d45163b commit b6f9d2f

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Extra json fields are ignored and missing json fields keep their default values.
6565
type Entry1 = object
6666
color: string
6767
var s = """{"extra":"foo"}"""
68-
var v = fromJson[Entry1](s)
68+
var v = s.fromJson(Entry1)
6969
doAssert v.color == ""
7070
```
7171

@@ -75,12 +75,12 @@ Nim usually uses `camelCase` for its variables, while a bunch of json in the wil
7575

7676
```nim
7777
type Entry4 = object
78-
colorBlend: string
78+
colorBlend: string
7979
80-
var v = fromJson[Entry4]("""{"colorBlend":"red"}""")
80+
var v = """{"colorBlend":"red"}""".fromJson(Entry4)
8181
doAssert v.colorBlend == "red"
8282
83-
v = fromJson[Entry4]("""{"color_blend":"red"}""")
83+
v = """{"color_blend":"red"}""".fromJson(Entry4)
8484
doAssert v.colorBlend == "red"
8585
```
8686

@@ -100,7 +100,7 @@ proc newHook(foo: var Foo5) =
100100
foo.visible = "yes"
101101
102102
var s = """{"id":"123"}"""
103-
var v = fromJson[Foo5](s)
103+
var v = s.fromJson(s)
104104
doAssert v.id == "123"
105105
doAssert v.visible == "yes"
106106
```
@@ -117,7 +117,7 @@ type Sizer = object
117117
proc postHook(v: var Sizer) =
118118
v.originalSize = v.size
119119
120-
var sizer = fromJson[Sizer]("""{"size":10}""")
120+
var sizer = """{"size":10}""".fromJson(Sizer)
121121
doAssert sizer.size == 10
122122
doAssert sizer.originalSize == 10
123123
```
@@ -139,9 +139,9 @@ proc enumHook(v: string): Color2 =
139139
of "GREEN": c2Green
140140
else: c2Red
141141
142-
doAssert fromJson[Color2](""" "RED" """) == c2Red
143-
doAssert fromJson[Color2](""" "BLUE" """) == c2Blue
144-
doAssert fromJson[Color2](""" "GREEN" """) == c2Green
142+
doAssert """ "RED" """.fromJson(Color2) == c2Red
143+
doAssert """ "BLUE" """.fromJson(Color2) == c2Blue
144+
doAssert """ "GREEN" """.fromJson(Color2) == c2Green
145145
```
146146

147147
### `proc renameHook()` Can be used to rename fields at run time.
@@ -156,7 +156,7 @@ proc renameHook(v: var Node, fieldName: var string) =
156156
if fieldName == "type":
157157
fieldName = "kind"
158158
159-
var node = fromJson[Node]("""{"type":"root"}""")
159+
var node = """{"type":"root"}""".fromJson(Node)
160160
doAssert node.kind == "root"
161161
```
162162

@@ -171,7 +171,7 @@ proc parseHook(s: string, i: var int, v: var DateTime) =
171171
parseHook(s, i, str)
172172
v = parse(str, "yyyy-MM-dd hh:mm:ss")
173173
174-
var dt = fromJson[DateTime](""" "2020-01-01 00:00:00" """)
174+
var dt = """ "2020-01-01 00:00:00" """.fromJson(DateTime)
175175
```
176176

177177
Sometimes json gives you an object of entries with their id as keys, but you might want it as a sequence with ids inside the objects. You can handle this and many other scenarios with `parseHook()`:
@@ -195,7 +195,7 @@ proc parseHook(s: string, i: var int, v: var seq[Entry]) =
195195
entry.id = k
196196
v.add(entry)
197197
198-
let s = fromJson[seq[Entry]](data)
198+
let s = data.fromJson(seq[Entry])
199199
```
200200

201201
Gives us:

0 commit comments

Comments
 (0)