diff --git a/examples/jsonlab_selftest.m b/examples/jsonlab_selftest.m index c29ffbe3f44c648a8028e3b6d658c7d504595284..1caaf28eccef4c6a5907d5c8a610a1aa7a35336f 100644 --- a/examples/jsonlab_selftest.m +++ b/examples/jsonlab_selftest.m @@ -10,3 +10,13 @@ for i=1:4 fprintf(1,'%s\n',json); data=loadjson(json); end + +for i=1:4 + fname=sprintf('example%d.json',i); + if(exist(fname,'file')==0) break; end + fprintf(1,'===============================================\n>> %s\n',fname); + json=saveubjson('data',loadjson(fname)); + fprintf(1,'%s\n',json); + data=loadubjson(json); + savejson('',data) +end diff --git a/saveubjson.m b/saveubjson.m index e840cb0a925b9fddd9f5b9a887edc93fee09b2fb..0a9953c7cbb3a3565a248440b7ed9100c88dd25f 100644 --- a/saveubjson.m +++ b/saveubjson.m @@ -237,7 +237,12 @@ if(length(size(item))>2 || issparse(item) || ~isreal(item) || ... if(isempty(name)) txt=['{' S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1)) ]; else - txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))]; + if(isempty(item)) + txt=[S_(checkname(name,varargin{:})),'Z']; + return; + else + txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))]; + end end else if(isempty(name))