Changes in version 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 Changes in version 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) Changes in version 2024-04-10 - Fix outstanding rchk errors - Prepare for CRAN Changes in version 2024-04-09 - Fix some compilation warnings. - Update documentation. - Update to yyjson v0.9.0 Changes in version 2024-04-02 - Bug fix for serializing NA in factors Changes in version 2024-03-16 - Re-introduce GeoJSON support Changes in version 2024-03-15 - Re-introduce NDJSON support - Add read_ndjson_str() Changes in version 2024-03-13 - call normalizePath() on all file paths - clarify authorship and copyright Changes in version 2024-03-07 - Increase maximum number of allowed data.frame columns (during parsing) to 2048 Changes in version 2024-02-01 - Read JSON from '.gz' files in read_json_file() Changes in version 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. Changes in version 2024-01-22 - Fixes for CRAN - Adjust pointer arithmetic when calling output_verbose_error() to avoid overflow of size_t Changes in version 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 Changes in version 2024-01-17 - Fixes for CRAN - DESCRIPTION fix: Write C as 'C' - Add link to original yyjson library - Fix name in LICENSE Changes in version 2024-01-15 - Fixes for CRAN - Simplify example to remove checkRd NOTE - Platform specific handling of error location format string to fix WARNING Changes in version 2024-01-13 - Add int64 = "double" option to opts_read_json() - Preparations for CRAN Changes in version 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 Changes in version 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) Changes in version 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) Changes in version 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. Changes in version 2023-09-13 - Added pre-calculation and caching of data.frame column types for faster serialization when outputting row-by-row. Changes in version 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) Changes in version 2023-09-10 - Unifed naming scheme Changes in version 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 Changes in version 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() Changes in version 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() - At a very alpha stage. Changes in version 2023-08-21 - Added validate_json_file() and validate_json_str() Changes in version 2023-08-20 - Added write_ndjson_file() and write_ndjson_str() Changes in version 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) Changes in version 2023-08-16 - Initial release