Releases: ocaml-community/yojson
Releases · ocaml-community/yojson
3.0.0
CHANGES:
2025-05-29
Changed
- Floats are now always output to JSON in a standard-conformant way or not at
all (raising an exception). This makes thestd
variants of functions
identical to the non-std
variants and thestd
arguments have no effect.
Users are encouraged to switch to the non-std
affixed variants, the others
will be deprecated in the future. (#184, @Leonidas-from-XIV) - Bumped the minimum required version of OCaml for the main package to 4.08
since the CI dropped the support. This however allows removing the dependency
on theseq
library, so the depencency cone becomes slightly smaller. (#194,
@Leonidas-from-XIV)
Fixed
- Fixed handling of escape sequences in JSON5. Known escapes like \b will be
properly unescaped and undefined escape sequences will unescape to the
character itself as per spec (#187, @david-maison-TrustInSoft) - Fixed tests failing on Windows due to disagreements with the length of an
input channel and the text mode conversion (#192, @Leonidas-from-XIV)
Removed
- Removed support for Tuple and Variant in JSON. It was a non-standard
extension that was rarely used, so this simplifies the Yojson types and the
parser more standard-conforming (#105, #158, #185 @Leonidas-from-XIV)
2.2.2
2.2.1
2.2.0
CHANGES:
2024-05-31
Added
- Added support for JSON5 (@dhilst, @gorm-issuu, @gertsonderby, #152)
Removed
- Remove CPPO dependency to make the Yojson installation lighter
(@Leonidas-from-XIV, #175)
2.1.2
CHANGES:
2023-11-23
Fixed
- Fix the error location reported in the exception. Regression in 2.1.1
(reported by @johnridesabike, regression test by @ElectreAAS, fix by
@Leonidas-from-XIV, #171, #172)
2.1.1
CHANGES:
2023-10-10
Changed
- Make
Basic
,Safe
&Raw
seperate compilation units that get exposed by
the main module as suggested by @hhugo to enable JSOO to discard unused
modules. No API changes should be observable. (#84, #167 @Leonidas-from-XIV) - Removed forward refs in the parser to make dead-code elimination in JSOO
better (#168, @hhugo)
2.1.0
CHANGES:
2023-04-26
Added
-
Add
Yojson.Raw.Util
module to provide combinators for extracting fields
fromYojson.Raw.t
values. (@tmcgilchrist, #163) -
Add
Util.path
function to recurse into an object through a list of keys.
(@cuihtlauac, @Leonidas-from-XIV, #157)
2.0.2
2.0.1
2.0.0
CHANGES:
Removed
- Removed dependency on easy-format and removed
pretty_format
from
Yojson
,Yojson.Basic
,Yojson.Safe
andYojson.Raw
. (@c-cube, #90) - Removed dependency on
biniou
, simplifying the chain of dependencies. This
changes some APIs:Bi_outbuf.t
in signatures is replaced withBuffer.t
to_outbuf
becomesto_buffer
andstream_to_outbuf
becomes
stream_to_buffer
(@Leonidas-from-XIV, #74, and @gasche, #132)
- Removed
yojson-biniou
library - Removed deprecated
json
type aliasing typet
which has been available
since 1.6.0 (@Leonidas-from-XIV, #100). - Removed
json_max
type (@Leonidas-from-XIV, #103) - Removed constraint that the "root" value being rendered (via either
pretty_print
orto_string
) must be an object or array. (@cemerick, #121) - Removed
validate_json
as it only made sense if the type was calledjson
.
(@Leonidas-from-XIV, #137)
Add
- Add an opam package
yojson-bench
to deal with benchmarks dependency
(@tmcgilchrist, #117) - Add a benchmark to judge the respective performance of providing a buffer vs
letting Yojson create an internal (#134, @Leonidas-from-XIV) - Add an optional
suf
keyword argument was added to functions that write
serialized JSON, thus allowing NDJSON output. Most functions default to not
adding any suffix except forto_file
(#124, @panglesd) and functions
writing sequences of values where the default is\n
(#135,
@Leonidas-from-XIV)
Change
- The
stream_from_*
andstream_to_*
functions now use aSeq.t
instead of a
Stream.t
, and they are renamed intoseq_from_*
andseq_to_*
(@gasche, #131).