NEWS
yyjsonr 2026-04-05
- C-API: Address non-API call
Rf_findVarInFrame()
- Geojson: Feature level IDs are now parsed correctly.
- yyjson: Include latest yyjson version 0.12.0
- yyjson: Expose new
yyjson_read_flag options for JSON5 parsing
- opts: Added parse option for
empty_array and empty_object.
See opts_read_json()
- opts: Add
null option when serializing. Now defaults to using JSON "null" where
previously had defaulted erroneously to an empty json array.
See opts_write_json()
- compat: switch from
gzfread() to gzread() for centOS compatability.
- feature: Add
read_geojson_conn() to handle geonjson from an R connection object
- opts: Added option
arr_of_arrs_to_matrix. Logical value to control if conforming
JSON []-arrays of nested []-arrays should be converted to matrices.
- Fix: Added support for raw nested data.frames (which are not in list-columns)
- Fix: ndjson error with zero-length input when parsing to data.frame.
Now returns empty data.frame(). This matches the parsing of ndjson
to lists, where zero-length input is not an error, and just returns
empty lists.
- Fix: segfault in parse_ndjson_str_as_df_. Now freeing allocated colnames
when error occurs
- Fix: free yyjson doc on error in geojson parse
- C-API: Removed support for UnboundValues when serializing environments
yyjsonr 2025-06-03
- Now get size of gzipped file in an endian-neutral way. Issue #39
- Fix underflow issue when trying to verbosely report an error at position 0
- Remove non-API calls: SETLENGTH, SET_TRUELENGTH, SET_GROWABLE_BIT
- Address valgrind/rchk errors
- Depends on R >= 4.1.0 (using new pipe and lambda syntax in examples)
- Opts: Added
digits_secs to control conversion of POSIXct datetimes with
fractional seconds
- Opts: Added
digits_signif to control significant digits in numeric representation
- Support
YYJSON_READ_NUMBER_AS_RAW to read all numbers as strings
- Opts: Add
digits_promote to control decimal places when numbers in
JSON []-arrays are promoted to strings.
- Opts: Add
json_verbatim to write strings (with class "json") directly
into the output
- Opts: Add
single_null to specify R value to use for single
JSON null values
- Add raw IO for json, ndjson
- Update to
yyjson v0.11.1 (May 2025)
yyjsonr 2024-04-10
- Fix outstanding
rchk errors
yyjsonr 2024-04-09
- Fix some compilation warnings.
- Update documentation.
- Update to yyjson v0.9.0
yyjsonr 2024-04-02
- Bug fix for serializing
NA in factors
yyjsonr 2024-03-16
- Re-introduce GeoJSON support
yyjsonr 2024-03-15
- Re-introduce NDJSON support
- Add
read_ndjson_str()
yyjsonr 2024-03-13
- call
normalizePath() on all file paths
- clarify authorship and copyright
yyjsonr 2024-03-07
- Increase maximum number of allowed data.frame columns (during parsing) to 2048
yyjsonr 2024-02-01
- Read JSON from '.gz' files in
read_json_file()
yyjsonr 2024-01-25
- New
fast_numerics flag when writing.
- Default
FALSE
- If
TRUE the user is guaranteeing that there are no NA, NaN or Inf values
in the numeric and integer vectors, and thus a faster method for writing
these vectors to JSON can be used.
- Changed writing of
raw vectors to always use the fast_numerics method,
as raw R vectors (by definition) will not have NA, NaN or Inf values.
yyjsonr 2024-01-22
- Fixes for CRAN
- Adjust pointer arithmetic when calling
output_verbose_error() to
avoid overflow of size_t
yyjsonr 2024-01-20
- Fixes for CRAN
- Fixed warnings when building with
MAKEVARS PKG_CFLAGS = -Wconversion
- Fixed C error where raw buffer was passed to
strlen() leading to
a check failure on cran with clang-ASAN
yyjsonr 2024-01-17
- Fixes for CRAN
- DESCRIPTION fix: Write
C as 'C'
- Add link to original
yyjson library
- Fix name in LICENSE
yyjsonr 2024-01-15
- Fixes for CRAN
- Simplify example to remove
checkRd NOTE
- Platform specific handling of error location format string to fix WARNING
yyjsonr 2024-01-13
- Add
int64 = "double" option to opts_read_json()
- Preparations for CRAN
yyjsonr 2024-01-05
- Remove NDJSON and GeoJSON code to simplify preparation for CRAN. Will
re-introduce this code in future releases.
- Updated to YYJSON v0.8.0
yyjsonr 2023-10-29
- Fix an off-by-one error when reporting line numbers in NDJSON handling.
- Increase buffer size when reading lines from NDJSON files.
- MAX_LINE_LENGTH now 131072 (was 10000)
yyjsonr 2023-10-27
- Writing to JSON objects now supports a
digits argument for rounding floating
point values to the specified number of significant digits
digits = -1 means don't do any rounding
digits = 0 rounds floating point values to integers (and writes the
values as JSON integers)
yyjsonr 2023-09-14
- Refactored options for simplification to data.frame
- removed
vectors_to_df
- replaced with
obj_of_arrs_to_df
- added
arr_of_obs_to_df
- length-1 vectors marked with class
AsIs (using a call to I()) will
never be unboxed i.e. will always be serialized as a JSON []-array with
one element.
- Added parse option
length1_array_asis. If TRUE then automatically add
the class AsIs to the object object.
yyjsonr 2023-09-13
- Added pre-calculation and caching of data.frame column types for faster
serialization when outputting row-by-row.
yyjsonr 2023-09-12
- Added
path.expand() when handling filenames. Thanks to
- https://github.com/shikokuchuo
- https://github.com/hrbrmstr
- Added support for data.frames without column names to match
behaviour of
jsonlite (when working within the plotly package)
yyjsonr 2023-09-10
yyjsonr 2023-09-04
- FEATURE: Added
promote_num_to_string in opts_read_json() to enable
forced promotion of numerics to string
- BUGFIX: fixes for handling of geometry collection when reading and writing.
- TESTING: More tests included for output to geojson
- TESTING: Refactored testing of 'sf' objects
yyjsonr 2023-08-31
- Bug fix for checking attributes on list columns. This surfaced more
errors to do with setting XYZ geometry type.
- More extensive testing of
write_geojson_str()
yyjsonr 2023-08-27
- Initial alpha GeoJSON support:
read_geojson_str(), read_geojson_file()
- Needs more testing for corner cases
write_geojson_str(), write_geojson_file()
yyjsonr 2023-08-21
- Added
validate_json_file() and validate_json_str()
yyjsonr 2023-08-20
- Added
write_ndjson_file() and write_ndjson_str()
yyjsonr 2023-08-19
- Update to option setting to remove overhead
- Added
read_json_raw() to parse JSON directly from a raw vector (which
contains UTF-8 string data)
yyjsonr 2023-08-16