- Support
Ptype_open, e.g.type u = X.(x) [@@deriving json](#60)
- [breaking] Library, PPX: Unify runtimes (
*.ppx-runtimelibraries are removed, can usemelange-jsonandmelange-json-nativeinstead), replaceJsonmodule withMelange_json, deprecateDecodeandEncodemodules, introduce new decoding error type and helper functionof_json_error_to_string. (#36) - [breaking] PPX: Code to decode polyvariants doesn't use an additional
_polyfunction which was also generated by the PPX. InsteadUnexpected_varianterror is used to signal that next decoder should be tried. (#32) - [breaking] Json.Decode.DecodeError exception now contains a variant type as payload instead of a string. (#32)
- [breaking] PPX: Rename
[@json.as]to[@json.name](#23) - [breaking] PPX: Drop special encoding for enumeration-like variants (variants with each constructor having no arguments). (#26)
- [breaking] PPX: change JSON representation of polyvariants, make it compatible with ppx_deriving_yojson and ppx_yojson_conv (#27)
- [breaking] PPX: Consistent use of exceptions in runtime. (#28)
- PPX:
[@@deriving json]now can be used within signatures (this includes.mlifiles). (#32) - PPX: Add runtime for
result(#13) - PPX: Add
yojsonas runtime dep for the native version (#15) - PPX: add
[@@json_string]for deriving converters to/from JSON strings directly (#30) - PPX: add support for
int64in the runtime (#33) - PPX: remove
string_to_jsonusage on js side (#35) - PPX: Add array functions to native runtime (#37)
- PPX: Qualify usages of infix operators with
Stdlib(#11) - Add
melange-json-nativepackage (#12) - Add
[@drop_default]attribute to dropNonevalues from JSON representation (#17)
- Port PPX from @andreypopp/ppx_deriving_json (#10)
- Require Melange v3 (#6)
- Initial release
- Rewrote
Encode.listto be stack-safe and much faster.
- Added
Json.Decode.id
- Dual licensed as LGPL-3.0 and MPL-2.0. MPL is mostly equivalent to LGPL but relaxes its restriction on linking, which works better with the JavaScript packaging and distribution model.
- Removed deprecated
arrayOfencoder - Renamed
dictencoder tojsonDict - Added new
dictencoder that takes an additional encoder argument used to encode the contained values, and so it's consistent with the respectivedictdecoder.
- Bumped
bs-platformpeer dependency to 5.0.4 to stop the compiler's complaining.
- Replace usage of
Js.Date.toJSONwithJs.Date.toJSONUsafe, which is exactly the same, just to avoid deprecation warnings for end users (Thanks Bob!) - Requires
bs-platform>= 4.0.2
- Removed
Json.Decode.boolean,Json.Encode.boolean,Json.Encode.booleanArray - Requires
bs-platform>= 3.0.0
- Reverted commits that broke backwards compatibility despite only affecting the implementation
- Deprecated
Json.Decode.boolean,Json.Encode.boolean,Json.Encode.booleanArray - Added
Json.Encode.boolArray
- Added
Json.Encode.charandJson.Decode.char
- Added "stack traces" to higher-order decoders, making it easier to find the location of an error.
- Moved repository from
reasonml-community/bs-jsontoglennsl/bs-json - Renamed NPM package from
bs-jsonto@glennsl/bs-json
- Replaced
Json.Encoder.arraywithJson.Encode.arrayOfrenamed toarray. DeprecatedarrayOfalias. - Added
Json.parse,Json.parseOrRaise,Json.stringify - Added
dateencoder and decoder - Added
tuple2/tuple3/tuple4encoders and decoders - Fixed bug where js integers > 32-bit were rejected as integers by Json.Decode.int (#15)
- Added
Json.Encode.bool - Added
Json.Encode.pair - Added
Json.Encode.withDefault - Added
Json.Encode.nullable - Added
Json.Encode.arrayOf - Added
Json.Encode.jsonArrayas replacement forJson.Encode.array - Deprecated
Json.Encode.array
- Fixed embarrassing bug where an API was used that isn't available on IE (honestly more embarrassed on behalf of IE though)
- Added
Json.Decode.pair
- Added
Json.Encode.list
- Breaking: Renamed
Json.Encode.object_toJson.Encode.dict - Added
Json.Encode.object_taking a list of properties instead of a Json.Dict.t as before