Encode and decode from and to Gleam types effortlessly !
Define a converter once and encode and decode as much as you want.
gleam add convertimportgleam/ioimportgleam/jsonimportconvertimportconvert/jsonascjsonpubtypePerson{Person(name:String,age:Int)}pubfnmain(){letconverter=convert.object({usename<-convert.field("name",fn(v:Person){Ok(v.name)},convert.string())useage<-convert.field("age",fn(v:Person){Ok(v.age)},convert.int())convert.success(Person(name:,age:))})Person("Anna",21)|>cjson.json_encode(converter)|>json.to_string|>io.debug// '{"name": "Anna", "age": 21}'"{\"name\": \"Bob\", \"age\": 36}"|>json.decode(cjson.json_decode(converter))|>io.debug// Ok(Person("Bob", 36))}Further documentation can be found at https://hexdocs.pm/convert.
- Javascript and Erlang targets
- Converters for all basic types
- Define converters for List, Dict, Result & Option
- Build converters for custom objects and enums
Feel free to open PRs and issues if you want more features !
gleam run # Run the project
gleam test# Run the tests