- 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 @Leonidas-from-XIV)
2024-06-27
- Add locations in the JSON5 parser error messages (@gcluzel, #182)
2024-06-04
- Don't expose
Yojson_five
internals anymore (@Leonidas_from_XIV, #180)
2024-05-31
- Added support for JSON5 (@dhilst, @gorm-issuu, @gertsonderby, #152)
- Remove CPPO dependency to make the Yojson installation lighter (@Leonidas-from-XIV, #175)
2023-11-23
- 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)
2023-10-10
- 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)
2023-04-26
-
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)
2022-08-09
- Expanded documentation of exceptions (@sim642, #148)
- Removed undocumented and unused functions
write_float_fast
andwrite_std_float_fast
fromYojson
,Yojson.Basic
andYojson.Safe
(@sim642, #149)
- Fix out-of-bounds error occurring when parsing object field names
with atdgen parsers using
map_ident
ormap_lexeme
(@mjambon, #150)
2022-06-28
- Fix pretty-printing behavior for lists/objects inside lists (@c-cube #141, @mjambon #142)
2022-06-02
- Removed dependency on easy-format and removed
pretty_format
fromYojson
,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
becomesstream_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 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)
- The
stream_from_*
andstream_to_*
functions now use aSeq.t
instead of aStream.t
, and they are renamed intoseq_from_*
andseq_to_*
(@gasche, #131).
- Avoid copying unnecessarily large amounts of strings when parsing (#85, #108, @Leonidas-from-XIV)
- Fix
stream_to_file
(#133, @tcoopman and @gasche)
2019-02-14
- Add documented
write_t
andread_t
to modules defining a JSON ast type for compatibility with atdgen
2019-01-30
json
types are deprecated in favor of their newt
aliases, ahead of their removal in the next major release (#73, @Leonidas-from-XIV)
- Add a type
t
and monomorphicequal
,pp
andshow
(#73, @Leonidas-from-XIV)
- Use dune as a build system (#67, @Leonidas-from-XIV)
- reraise exceptions in
finish_string
instead of silencing them by raising aFailure _
- raise finalizer exceptions in
from_channel
andfrom_lexbuf
readers
- Fix a race condition in builds (#57, @avsm)
2014-12-26
- new function
Yojson.Safe.buffer_json
for saving a raw JSON string while parsing in order to parse later
2014-01-19
- cmxs is now generated for supported platforms
2013-05-24
- tolerate double quoted boolean "true" and "false" when a boolean is expected
2013-05-16
- fix a bug in float printing. now print number of significant figures rather
than decimal places for
write_float_prec
andwrite_std_float_prec
2013-03-19
- new function
Yojson.sort
to sort fields in objects, and corresponding cmdline option.
2012-12-31
- proper support for escaped code points above U+FFFF
2012-03-19
- new function
Yojson.to_output
for writing to an OO channel; requiresbiniou
>= 1.0.2
2012-02-27
- various enhancements
2012-02-07
- ydump now implies -s i.e. multiple whitespace-separated records are accepted.
2012-01-26
Yojson.Biniou
becomesYojson_biniou
, packageyojson.biniou
2011-04-27
- improved error messages showing several lookahead bytes
- factored out
lexer_state
andinit_lexer
definitions - added
read_null_if_possible
function (used byatdgen
)
2011-01-22
- fixed serialization of negative ints using the
write_int
function (affectsatdgen
)
2010-12-04
- now requires
biniou
version 1.0.0 or higher
2010-09-13
- added
INSTALL
file
2010-08-04
- first release