这是JSONLab工具箱的开发分支(不稳定)。下载链接直接指向JSONLab Github存储库的“master”分支中的最新提交https://github.com/fangq/jsonlab/
请谨慎使用此分支:它可能包含最新的bug修复,但同时,它也可能包含部分实现的特性,并且可能不稳定。如果你需要一个稳定的版本,请从下面的链接下载
//www.tatmou.com/matlabcentral/fileexchange/33381-jsonlab-a-toolbox-to-encode-decode-json-files
=================================================================
JSONLab以前的稳定版本:
** JSONLab 2.0 beta (Magnus - beta)于2019年10月24日发布
发布网址:https://github.com/fangq/jsonlab/releases/tag/v1.9.8
JData规范草案2的参考实现http://github.com/fangq/jdata
取决于://www.tatmou.com/matlabcentral/fileexchange/71434-zmat
JSONLab是一个免费和开源的JSON/UBJSON/MessagePack编码器实现
以及MATLAB语言的解码器。它可以用来转换MATLAB
数据结构(数组、结构体、单元格、结构体数组、单元格数组和对象)
JSON/UBJSON/MessagePack格式的字符串,或解码
JSON/UBJSON/MessagePack文件转换成MATLAB数据结构。JSONLab既金宝app支持
MATLAB和[http://www.gnu.org/software/octaveGNU Octave](一个免费的MATLAB克隆)。
JSON ([http://www.json.org/JavaScript对象表示法])是一个高度可移植的,
人类可读的,http://en.wikipedia.org/wiki/JSON“无脂”)文本格式
来表示复杂的分层数据。它和[http://en.wikipedia.org/wiki/XMLXML)
而且可以减少复杂性。JSON格式被广泛用于应用程序中的数据交换。
UBJSON ([http://ubjson.org/Universal Binary JSON])是一种二进制JSON格式
特别优化的压缩文件大小和更好的性能,而保持
语义与基于文本的JSON格式一样简单。使用UBJSON
格式允许以灵活和可扩展的方式包装复杂的二进制数据
结构,使处理复杂和大数据集成为可能
没有由于文本转换而导致的准确性损失。MessagePack是另一个二进制文件
类似json的数据格式广泛用于web/本地应用程序的数据交换。
它比UBJSON略紧凑,但不能直接阅读
UBJSON。
我们认为JSON和它的二进制副本都将发挥重要作用
作为科学研究的主流数据交换格式。
它具有其他流行软件所提供的灵活性和通用性
通用文件规范,例如[http://www.hdfgroup.org/HDF5/whatishdf5.htmlHDF5]
但显著降低了复杂性和极佳的可读性。
为了实现这个目标,我们开发了JData规范(http://github.com/fangq/jdata)
对复杂的科学数据结构进行标准化序列化,例如
N-D数组,稀疏/复数数组,树,地图,表格和图形使用
JSON /二进制JSON结构。文本格式和二进制格式的JData文件是
与JSON/UBJSON格式在语法上兼容,并且易于解析
使用现有的JSON和UBJSON解析器。
请注意,由' ' saveubjson ' '生成的数据文件可能使用特殊的
“优化头”存储N- d (N>1)数组,在JData规范草案2中定义。
UBJSON规范草案12不支持此特性。金宝app生产
必须使用符合UBJSON- draft -12的解析器解析的UBJSON文件
在调用' ' saveubjson ' '中添加选项' ' " NestArray',1 ' '。
请在这里找到详细的在线帮助http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?jsonlab/Doc
外部链接:
[1]//www.tatmou.com/matlabcentral/fileexchange/39526-byte-encoding-utilities
[2]http://github.com/fangq/zmat
千千方(2021)。JSONLab(开发分支)GitHub (https://github.com/fangq/jsonlab)。检索.
@Otis,谢谢你报道这个问题。我能够重现这个问题并修复它。
请查看我的github提交:
https://github.com/fangq/jsonlab/commit/1b1be6595377b49089300df2c50dd6d746b7ba82
jsonlab默认移除单个元素的方括号(由opt.SingletArray控制)。但是,在UBJSON的情况下,二进制数据流还可能包含“]”或“[”,这些数据流可能会被意外替换。为了避免这种副作用,我使用了"]$",它只匹配并删除了结束方括号。一个解决方案是在savejson的末尾添加'SingletArray', 1。这将使字段被一对[]包围。通过这个修复,我能够在没有错误的情况下运行您报告的案例。
请更新您的jsonlab并尝试一下。
@Raoann,你需要运行addpath('/path/to/jsonlab'),以便matlab找到这个工具箱。这是安装任何matlab工具箱所必需的。
我在loadubjson中遇到了一个奇怪的bug。
下面的代码在调用loadubjson时崩溃。
一个= 3.779487702;
('C', C, 'C.ubjson');
dat = loadubjson(“C.ubjson”);
但如果你重做c a = 3.779487802,也就是说c a相差一位数,就可以了。有一些结构字段的值,在saveubjson保存后,就不能被loadubjson读取。我还没能找到一个模式来说明发生了什么。
你好,
我有一个JSON文件,我想在Matlab中读取。该文件包含太阳能光伏的生产和微电网的消费的值。我首先输入以下几行代码来读取JSON文件:
fname = 'Chalokwa Test Bench2.json';
fid = fopen(帧);
生=从文件中读(fid,正);
str = char(原始的);
文件关闭(fid);
val = jsondecode (str);
但是,当我输入这行:
data = loadjson('Chalokwa Test Bench2.json');
命令窗口回答(loadjson)是未定义的,我应该做什么?
我是一个初学者在Matlab,我希望得到一些帮助,从你的家伙。
致以最亲切的问候
当我加载小的json文件时,它工作得很好,但当我加载大的json文件" instances_train2017. json "。json", Matlab works whole night and not completed, this file is about 460 megabytes in size, that small one is 9 Mb in size and completed takes about 1 min. Does anyone konw how to deal with this problem? Thanks.
优秀的工作
嗨,倩倩,谢谢你的工具箱!但这里有一个bug:在一个Matlab字符串数组中,它是一个结构数组中的字段,savejson作为转义字符添加的“\”字符在你loadjson时没有被正确剥离。