JSONlab ChangeLog (key features marked by *):
2024-03-28*[b39c374] [feat] add json2couch from jbids toolbox 2024-03-28 [6da4f2b] [doc] remove the unrelated npm package.json 2024-03-28 [36b605d] [doc] update documentation 2024-03-27*[2e43586] [feat] merge nii/jnii/hdf5/tsv reading functions self-contained 2024-03-27 [b482c8f] [test] pass all tests on matlab R2010b 2024-03-27 [2008934] [doc] additional documentations on decompression functions 2024-03-27 [0a582fb] [doc] add documentations for jsonpath, jsoncache, jdlink, and maxlinklevel 2024-03-27 [5dba1de] [bug] .. searches deep level of struct,make jdlink work for Octave 4.2 and 5.2 2024-03-27*[fea481e] [doc] add line-by-line comment on examples, add jsonset/jsonget 2024-03-26*[e1d386d] [feat] support saving dictionary to json and bjdata 2024-03-26 [dfc744b] [feat] support caching data from any URL using hash, add NO_ZMAT flag 2024-03-24 [22d297e] [doc] fix README.rst formatting issues 2024-03-24 [36fef2c] [bug] fix missing quotes for function names 2024-03-24 [7e27db5] [doc] update documentation, preparing for v2.9.8 release 2024-03-24 [1227a0b] [format] reformat 2024-03-24 [67f30ca] [feat] support using \. or [] in JSONPath to escape dots in key names 2024-03-24 [ee830cd] [bug] fix error_pos error when giving a non-existant input file 2024-03-24 [d69686d] [feat] add jdlink to dynamically download and cache linked data 2024-03-22 [772a1ef] [ci] fix octave failed test 2024-03-22 [cff529a] [test] add jsonpath test, refine jsonpath syntax support 2024-03-22 [22435e4] [bug] fix jsonpath handling of recursive deep scans 2024-03-21 [c9f8a20] [bug] support deep scan in cell and struct, merge struct/containers.Map 2024-03-21 [394394a] [bug] improve jsonpath cell with deep scan 2024-03-20 [a599e71] [feat] add jsoncache to handle _DataLink_ download cache, rename jsonpath 2024-02-19*[4f2edeb] [feat] support .. jsonpath operator for deep scan 2024-01-11 [c43a758] [bug] fix missing index_esc reset, add test for automap 2024-01-11*[ef5b472] [feat] automatically switch to map object when key length > 63 2023-11-17 [ee24122] use sprintf to replace unescapejsonstring 2023-11-12 [abe504f] [ci] test again on macos-12 2023-11-12 [d2ff26a] [ci] install octave via conda on macos to avoid hanged install 2023-11-07 [33263de] completely reformat m-files using miss_hit 2023-11-07 [3ff781f] make octavezmat work on matlab 2023-10-29 [ea4a4fd] make test script run on MATLAB R2010b 2023-10-27 [ca91e07] use older matlab due to matlab-actions/run-command#43 2023-10-27 [4bf8232] add NO_ZMAT flag, fix fread issue 2023-10-27*[ce3c0a0] add fallback zlib/glib support on Octave via file-based zip/unzip 2023-10-26 [7ab1b6e] fix error for expecting an ending object mark when count is given 2023-09-08 [6dfa58e] Fix typos found by codespell 2023-06-27 [7d7e7f7] fix typo of compression method 2023-06-27*[c25dd0f] support blosc2 codecs in save and load data, upgrade jsave/jload 2023-06-19 [b23181a] test root-level indentation 2023-06-19 [5bfde65] add indentation test 2023-06-19 [b267858] fix CI errors related to octave utf-8 handling 2023-06-19 [1e93d07] avoid octave 6.4+ regexp non-utf8 error see discussions at octave bug thread: https://savannah.gnu.org/bugs/index.php?57107 2023-06-15 [8f921ac] fix broken tests 2023-06-11*[6cb5f12] allow linking binary jdata files inside json 2023-06-10 [2d0649b] do not compress long string by default, read bjd from URI 2023-06-10 [5135dea] saving JSON with UTF-8 encoding, fix #71 2023-06-10*[a3c807f] add zstdencode and zstddecode via new version of zmat 2023-06-07 [837c8b5] fix containers.Map indentiation bug with a single element 2023-06-07 [747c99b] fix string indentation, add option EmptyArrayAsNull, fix #91 2023-06-05*[cf57326] support blosc2 meta compressors 2023-05-05 [d37a386] use {:} to expand varargin 2023-04-23 [03311d2] remove README.txt, no longer used, fix #88 2023-04-21 [49eceb0] Fix typo not found by codespell 2023-04-21 [75b1fdc] Fix typos found by codespell 2023-04-17 [8fea393] revert savejson change 2023-04-17 [9554a44] Merge branch 'master' of github.com:fangq/jsonlab 2023-04-17 [3c32aff] speed up string encoding and decoding 2023-04-09*[8c8464f] rename jamm files to pmat - portable mat, will add jsonmmap 2023-04-09 [aa1c2a4] drop ubuntu-18.04 2023-04-08 [9173525] replace regexp to ismember due to octave bug 57107; test mac 2023-04-08 [67065dc] fix matlab test 2023-04-08 [8dcedad] use alternative test to avoid octave bug 57107 2023-04-08*[9b6be7b] add github action based tests 2023-02-24 [cb43ed1] add bug fix test section 2023-02-24 [2412ebf] only simplify all-numeric or all-struct cells 2023-02-23 [d4e77e1] add missing file extension 2023-02-23 [408cc2e] fix loadjd and savejd file extension match, add jbids 2023-02-22 [29bac9d] fix broken jdatahash 2023-02-22*[69a7d01] add a portable data hash function 2023-02-09 [0448eb1] preventing matlab 2022b converting string to unicode 2022-11-21 [9ce91fc] handle empty struct with names, fix #85 2022-11-20 [9687d17] accept string typed file name, close #84 2022-08-12 [283e5f1] output data depends on nargout 2022-08-08 [c729048] avoid conjugating complex numbers, fix #83 2022-06-05*[fa35843] implementing JSON-Mmap spec draft 1, https://neurojson.org/jsonmmap/draft1 2022-05-18 [8b74d30] make savejd work for saveh5 to save hdf5 files 2022-04-19 [f1332e3] make banner image transparent background 2022-04-19 [6cf82a6] fix issues found by dependency check 2022-04-19 [94167bb] change neurojson urls to https 2022-04-19 [c4c4da1] create Contents.m from matlab 2022-04-19*[2278bb1] stop escaping / to \/ in JSON string, see https://mondotondo.com/2010/12/29/the-solidus-issue/ 2022-04-01*[fb711bb] add loadjd and savejd as the unified JSON/binary JSON file interface 2022-03-30 [4433a21] improve datalink uri handling to consider : inside uri 2022-03-30 [6368409] make datalink URL query more robust 2022-03-29 [dd9e9c6] when file suffix is missing, assume JSON feed 2022-03-29*[07c58f3] initial support for _DataLink_ of online/local file with JSONPath ref 2022-03-29 [897b7ba] fix test for older octave 2022-03-20 [bf03eff] force msgpack to use big-endian 2022-03-13 [46bbfa9] support empty name key, which is valid in JSON, fix #79 2022-03-12 [9ab040a] increase default float number digits from 10 to 16, fix #78 2022-03-11 [485ea29] update error message on the valid root-level markers 2022-02-23 [aa3913e] disable TFN marker in optimized header due to security risk and low benefit 2022-02-23 [f2c3223] support SCH{[ markers in optimized container type 2022-02-14 [540f95c] add optional preceding whitespace, explain format 2022-02-13 [3dfa904] debugged and tested mmap, add mmapinclude and mmapexclude options 2022-02-10*[6150ae1] handle uncompressed raw data (only base64 encoded) in jdatadecode 2022-02-10 [88a59eb] give a warning when jdatadecode fails, but still return the raw data 2022-02-03*[05edb7a] fast reading and writing json data record using mmap and jsonpath 2022-02-02*[b0f0ebd] return disk-map or memory-map table in loadjson 2022-02-01 [0888218] correct typos and add additional descriptions in README 2022-02-01*[03133c7] fix row-major ('formatversion',1.8) ND array storage order, update demo outputs 2022-02-01 [5998c70] revert variable name encoding to support unicode strings 2022-01-31 [16454e7] test flexible whitespaces in 1D/2D arrays, test mixed array from string 2022-01-31*[5c1ef15] accelerate fastarrayparser by 200%! jsonlab_speedtest cuts from 11s to 5.8s 2022-01-30 [9b25e20] fix octave 3.8 error on travis, it does not support single 2022-01-30 [5898f6e] add octave 5.2 to travis 2022-01-30*[2e3344c] [bjdata:breaking] Upgrade savebj/loadbj to BJData v1-draft 2, use little-endian by default 2022-01-30*[2e3344c] [bjdata:breaking] Fix optimized ND array element order (previously used column-major) 2022-01-30*[2e3344c] optimize loadjson and loadbj speed 2022-01-30*[2e3344c] add 'BuiltinJSON' option for savejson/loadjson to call jsonencode/jsondecode 2022-01-30*[2e3344c] more robust tests on ND array when parsing JSON numerical array construct 2021-06-23 [632531f] fix inconsistency between singlet integer and float values, close #70 2021-06-23 [f7d8226] prevent function calls when parsing array strings using eval, fix #75 2021-06-23 [b1ae5fa] fix #73 as a regression to #22 2020-09-29 [d0cb3b8] Fix for loading objects. 2020-07-26 [d0fb684] Add travis badge 2020-07-25 [708c36c] drop octave 3.2 2020-07-25 [436d84e] debug octave 3.2 2020-07-25 [0ce96ec] remove windows and osx targets from travis-ci 2020-07-25 [0d8baa4] fix ruby does not support error on windows 2020-07-25*[faa7921] enable travis-ci for jsonlab 2020-07-08 [321ab1a] add Debian and Ubuntu installation commands 2020-07-08 [e686828] update author info 2020-07-08*[ce40fdf] supports ND cell array, fix #66 2020-07-07 [6a8ce93] fix string encoding over 399 characters, close #65 2020-06-14 [5a58faf] fix DESCRIPTION date bug 2020-06-14 [9d7e94c] match octave description file and upstream version number 2020-06-14 [a5b6170] fix warning about lz4encode file name
2020-06-13 [81feef3] skil no-op markers, update documentation 2020-06-13 [4904155] jload load data to struct, test if loadbj input is buffer, update error msg 2020-06-12 [c334799] change default workspace to caller for jload and jsave 2020-06-10 [c883546] fix keeptype single integer bug 2020-06-09*[ ] createdjdata
andbjdata
python modules to share data with MATLAB 2020-06-08*[cbde607] add savebj and loadbj to dedicate to loading and saving bjdata 2020-06-08*[e2451e1] add unit testing script, fix issues found in the testing unit 2020-06-06 [a44015f] accelerate fast_match_bracket, drop unicode2native for speed 2020-06-06 [eefccf3] call jsonencode/decode in jsave/jload, parse embedded jdata struct 2020-06-05 [9434103] support Toeplitz matrices, use case-insensitive comparison 2020-06-04 [3119ce4] jdatadecode now handles _ArrayOrder_ 2020-06-04 [89b844c] remove forced root name, update internal test results 2020-06-02*[15ca7ae] add keeptype option to jsave and saveubjson 2020-06-02 [7f2cbc4] make jsave and jload work on octave 2020-06-01*[8829d6b] apply data compression to strings, new datatype char 2020-06-01 [270cbf6] fix loadmsgpack ND array issue 2020-06-01*[919f502] add jsave and jload for portable data sharing,update doc 2020-05-31 [df3a4fa] debug arrayshape related changes and test all demo scripts 2020-05-31*[fc0b285] adding support to _ArrayShape_ to record special matrices 2020-05-15*[d88d454] jsonlab is compatible with matlab R2008 2020-05-13 [86efe89] flag to prevent embedding ND array size specifier 2020-05-07 [a189a50] use more robust integer type testing 2020-05-06*[82f5249] saveubjson now implments BJData spec Draft1,https://github.com/fangq/bjdata 2020-05-03 [34bca22] add prj file to compile a matlab package, close #60 2020-05-03 [82dfdcc] handle empty array in loadmsgpack, fix #63, patch by stfnp 2020-03-08 [7499bd8] Merge pull request #61 from j2L4e/patch-1 2020-02-09*[6984111] add UseMap option to avoid key name conversion 2019-11-16 [e46221a] if _ArraySize_ has a single length, treat as a row vector 2019-11-01 [f2bfb65] fix a uint8 upper bound bug 2019-10-24 [cc4491d] avoid escaping base64 str, avoid double processing preencoded arrayzipdata 2019-10-24 [4dc76ef] make example script compatible with matlab R2010 2019-10-24 [ad8be26] disable underscore escaping in octave,update all tests and outputs 2019-10-24 [d4275c6] reduce jsonopt calls to speed up encoding and decoding 2019-10-23 [82c9e91] fix invalid jdatadecode example 2019-10-23 [398539d] reoptimize for speed 2019-10-22*[650b5ec] enable jdataencode in savejson and saveubjson
2019-10-22*[650b5ec] enable preencode by default for savejson and saveubjson 2019-10-21 [0f870c0] make demos to run with jdataencode, but still have issues 2019-10-21*[874945f] decode graph data, encode non-char-keyed map data 2019-10-18 [11712b7] add any2jd, pass opt to name check, add more options 2019-10-18*[f97de9b] extract name encoding/decoding to separate function, like in easyh5 2019-10-17*[9d0fd4a] rewrite jdataencode 2019-10-15 [23f14d6] minor updates to make msgpack to work on octave 2019-10-14 [04d6c04] update encoding and decoding function help info 2019-09-16*[689cb40] support lz4 and lz4hc compression via zmat v0.9 2019-09-03 [2aa6591] add conditions to use the U marker 2019-08-20 [31eabba] fix table transpose issue for uniform type tables 2019-08-13 [cdb218d] use iso2mesh original function isoctavemesh in place of isoctave 2019-07-18 [6c44724] Add Encoding option to loadjson and savejson 2019-07-11*[06d33aa] update zmat test to support zmat v0.8 mox-the-fox 2019-07-09 [6a4821c] fix 2d array transpose issue, close #54 2019-06-24 [fb5b240] update format for table objects 2019-06-24*[eba4078] saving table objects with new syntax 2019-06-20 [6803542] fix ubjson array output bug 2019-06-18 [69006d5] encode and decode non-string keyed maps 2019-06-14 [bf26892] allow to decode jdata structures loaded from jsonencode from matlab 2019-06-12 [3eb6d56] change ArrayCompression keywords to ArrayZip to be short 2019-06-12*[e5f2ffb] complete saveubjson debug mode, add compression example 2019-06-11 [ebbcfd2] pass formatversion tag to jdatadecode 2019-06-10*[95b2eb0] add jdataencode and jdatadecode 2019-06-10*[f86219d] major update: use row-major for N-D array, incompatible with old JSONLab 2019-06-02 [63ff948] handle nestarray in json and ubjson 2019-06-01 [f421b14] add a modified msgpack decoder based on Bastian Bechtold's transplant project 2019-05-31 [428b47f] fix savemsgpack input test 2019-05-31 [0ff5d47] support table in ubjson,add demo for handles,containers.Map and datetime and tables 2019-05-31*[0c467ee] support lzma and lzip compression decompression via zmat toolbox (http://github.com/fangq/zmat) 2019-05-31 [599ee4c] support categorical data 2019-05-31 [15c4b8d] completely remove global var using nested functions 2019-05-30*[d47be45] fast bracket matching 2019-05-30 [1993a24] recursively processing output 2019-05-30 [d1f7ee8] fix bracket matching, transpose _ArrayData_; convert irregular array to cell 2019-05-24*[0ec2d01] rewriting fastarrayparser, 10x faster for Octave, close #4 with fast bracket matching 2019-05-22*[d8c19b8] add support to MessagePack, close #53, add NestArray option, close #6 2019-05-19*[c87e7d2] support containers.Map
2019-05-06 [25ad795] unescape string in loadjson.m 2019-05-04 [2e317c9] explain extra compression fields 2019-05-02 [1b1be65] avoid side effect of removing singletarray 2019-05-02*[8360fd1] support zmat based base64 encoding and decoding 2019-05-01*[c797bb2] integrating zmat, for zlib/gzip data compression 2019-04-29 [70551fe] remove warnings from matlab 2019-04-28 [0d61c4b] complete data compression support, close #52 2019-04-27 [804115b] avoid typecast error 2019-04-27 [c166aa7] change default compressarraysize to 100 2019-04-27*[3322f6f] major new feature: support array compression and decompression 2019-03-13*[9c01046] support saving function handles, close #51 2019-03-13 [a8fde38] add option to parse string array or convert to char, close #50 2019-03-12 [ed2645e] treat string array as cell array in newer matlab 2018-11-18 [c3eb021] allow saving uint64 integers in saveubjson, fix #49
2018-07-12 [03a6c25] update documentation, bump version to 1.8, tag Nominus 2018-07-12*[1597106] add patch provided by pjkoprowski to support MATLAB table, add RowNames support, fix #29 2018-07-12 [f16cc57] fix #31, throw an error when : array construct is used 2018-07-12 [956e000] drop octave 3.x support, fix ubjson error in octave 2018-07-12 [e090f0a] fix octave warning for saveubjson 2018-07-12*[34284c7] fix issues #34 #39 #44 and #45, support double-quoted strings 2017-09-06 [474d8c8] Merge pull request #41 from dasantonym/master 2017-08-07*[38b24fb] added package.json to be able to intall via npm package manager, converted readme to utf-8, added basic .gitignore file 2017-07-19 [ae7a5d9] Merge pull request #40 from astorfi/master 2017-07-17 [154ef61] Rename README.txt to README.rst 2017-03-27 [31b5bdc] simplify condition flow in matching_bracket 2017-03-27 [86ef12a] avoid error in matlab 2017a, close #34 2017-02-18 [4a09ac3] Merge pull request #32 from vrichter/master 2017-02-14 [e67d3a3] respect integer types
2017/01/02 *use Big-endian format to store floating points (d/D) in saveubjson (Issue #25) 2017/01/02 *speedup parsing large unstructured data by 2x (Issue #9) 2017/01/01 make parsing independent of white space (Issue #30) 2016/08/27 allow to parse array of homogeneous elements (Issue 5) 2016/08/22 permit [] inside file names in savejson 2016/01/06 fix a bug that prevents saving to a file in savejson
2015/12/16 replacing string concatenation by str cells to gain 2x speed in savejson (Issue#17) 2015/12/11 fix FileName option case bug (SVN rev#495) 2015/12/11 add SingletCell option, add SingletArray to replace NoRowBracket (Issue#15,#8) 2015/11/10 fix bug for inerpreting file names as JSON string - by Mykhailo Bratukha (Pull#14) 2015/10/16 fix bug for cell with transposed data - by Insik Kim (Pull#12) 2015/09/25 support exporting matlab object to JSON - by Sertan Senturk (Pull#10, #11)
2015/05/05 *massively accelerating loadjson for parsing large collection of unstructured small objects 2015/05/05 force array bracket in 1x1 struct to maintain depth (Issue#1) 2015/05/05 parse logicals in loadjson 2015/05/05 make options case insensitive 2015/05/01 reading unicode encoded json files (thanks to Sertan Senturk,Issue#3) 2015/04/30 allow \uXXXX to represent a unicode in a string (Issue#2) 2015/03/30 save a 0x0 solid real empty array as null and handel empty struct array 2015/03/30 properly handle escape characters in a string 2015/01/24 *implement the UBJSON Draft12 new name format 2015/01/13 correct cell array indentation inconsistency
2015/01/02 polish help info for all major functions, update examples, finalize 1.0 2014/12/19 fix a bug to strictly respect NoRowBracket in savejson
2014/11/22 show progress bar in loadjson ('ShowProgress') 2014/11/17 *add Compact option in savejson to output compact JSON format ('Compact') 2014/11/17 add FastArrayParser in loadjson to specify fast parser applicable levels 2014/09/18 *start official github mirror: https://github.com/fangq/jsonlab
2014/09/17 fix several compatibility issues when running on octave versions 3.2-3.8 2014/09/17 *support 2D cell and struct arrays in both savejson and saveubjson 2014/08/04 escape special characters in a JSON string 2014/02/16 fix a bug when saving ubjson files
2014/01/22 use binary read and write in saveubjson and loadubjson
2013/10/07 better round-trip conservation for empty arrays and structs (patch submitted by Yul Kang)
2013/08/23 *universal Binary JSON (UBJSON) support, including both saveubjson and loadubjson
2012/12/18 *handling of various empty and sparse matrices (fixes submitted by Niclas Borlin)
2012/06/17 *new format for an invalid leading char, unpacking hex code in savejson 2012/06/01 support JSONP in savejson 2012/05/25 fix the empty cell bug (reported by Cyril Davin) 2012/04/05 savejson can save to a file (suggested by Patrick Rapin)
2012/02/28 loadjson quotation mark escape bug, see http://bit.ly/yyk1nS 2012/01/25 patch to handle root-less objects, contributed by Blake Johnson
2012/01/13 *speed up loadjson by 20 fold when parsing large data arrays in matlab 2012/01/11 remove row bracket if an array has 1 element, suggested by Mykel Kochenderfer 2011/12/22 *accept sequence of 'param',value input in savejson and loadjson 2011/11/18 fix struct array bug reported by Mykel Kochenderfer
2011/10/21 fix a bug in loadjson, previous code does not use any of the acceleration 2011/10/20 loadjson supports JSON collections - concatenated JSON objects
2011/10/16 package and release jsonlab 0.5.0 2011/10/15 *add json demo and regression test, support cpx numbers, fix double quote bug 2011/10/11 *speed up readjson dramatically, interpret _Array* tags, show data in root level 2011/10/10 create jsonlab project, start jsonlab website, add online documentation 2011/10/07 *speed up savejson by 25x using sprintf instead of mat2str, add options support 2011/10/06 *savejson works for structs, cells and arrays 2011/09/09 derive loadjson from JSON parser from MATLAB Central, draft savejson.m