From 88ce7fb56c0e8f01d07be349cbdae1d873fbb43c Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Thu, 8 Feb 2024 08:09:26 +1100 Subject: [PATCH] Fix README field options example --- README.md | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6a406c9..77da4f4 100644 --- a/README.md +++ b/README.md @@ -157,15 +157,38 @@ Type fields can be annotated with `{.serialize.}` and `{.deserialize.}` and prop For example, ```nim -type MyObj {.serialize(mode=OptOut).} = object - field1 {.serialize("mykey").}: bool - field2: bool +import pkg/serde/json -# equivalent to +type + Person {.serialize(mode=OptOut), deserialize(mode=OptIn).} = object + id {.serialize(ignore=true), deserialize(key="personid").}: int + name: string + birthYear: int + address: string + phone: string -type MyObj {.serialize(mode=OptOut).} = object - field1 {.serialize(key="mykey", ignore=true).}: bool - field2: bool +let person = Person( + name: "Lloyd Christmas", + birthYear: 1970, + address: "123 Sesame Street, Providence, Rhode Island 12345", + phone: "555-905-justgivemethedamnnumber!⛽️🔥") + +let createRequest = """{ + "name": "Lloyd Christmas", + "birthYear": 1970, + "address": "123 Sesame Street, Providence, Rhode Island 12345", + "phone": "555-905-justgivemethedamnnumber!⛽️🔥" +}""" +assert person.toJson(pretty=true) == createRequest + +let createResponse = """{ + "personid": 1, + "name": "Lloyd Christmas", + "birthYear": 1970, + "address": "123 Sesame Street, Providence, Rhode Island 12345", + "phone": "555-905-justgivemethedamnnumber!⛽️🔥" +}""" +assert !Person.fromJson(createResponse) == Person(id: 1) ``` ### `key`