diff --git a/examples/jsonlab_basictest.matlab b/examples/jsonlab_basictest.matlab index a5c04c0a5c25a9b353516882da6b7bf67020547f..d51ba96cc413c1e6a82429efef3b7445a66dd2e6 100644 --- a/examples/jsonlab_basictest.matlab +++ b/examples/jsonlab_basictest.matlab @@ -572,27 +572,27 @@ ans = "data2json": [ [ [ - [1], + 1, [ - [2], - [3] + 2, + 3 ] ], - [7] + 7 ], [ [ - [4], - [5] + 4, + 5 ], [ - [8], - [9] + 8, + 9 ] ], [ - [6], - [10] + 6, + 10 ] ] } @@ -601,7 +601,7 @@ ans = >> json2data = - data2json: [10x1 double] + data2json: {{1x2 cell} [2x2 double] [6 10]} >> >> %================================================= diff --git a/savejson.m b/savejson.m index 54bcaed70404c68a6968f7d59e86f44934258266..90c5bd1d059aa8689683aa80d238a8610810d96b 100644 --- a/savejson.m +++ b/savejson.m @@ -314,14 +314,18 @@ if(length(size(item))>2 || issparse(item) || ~isreal(item) || ... padding1,checkname(name,varargin{:}),nl,padding0,class(item),nl,padding0,regexprep(mat2str(size(item)),'\s+',','),nl); end else + if(numel(item)==1 && jsonopt('NoRowBracket',1,varargin{:})==1 && level>0) + numtxt=regexprep(regexprep(matdata2json(item,level+1,varargin{:}),'^\[',''),']',''); + else + numtxt=matdata2json(item,level+1,varargin{:}); + end if(isempty(name)) - txt=sprintf('%s%s',padding1,matdata2json(item,level+1,varargin{:})); + txt=sprintf('%s%s',padding1,numtxt); else if(numel(item)==1 && jsonopt('NoRowBracket',1,varargin{:})==1) - numtxt=regexprep(regexprep(matdata2json(item,level+1,varargin{:}),'^\[',''),']',''); txt=sprintf('%s"%s": %s',padding1,checkname(name,varargin{:}),numtxt); else - txt=sprintf('%s"%s": %s',padding1,checkname(name,varargin{:}),matdata2json(item,level+1,varargin{:})); + txt=sprintf('%s"%s": %s',padding1,checkname(name,varargin{:}),numtxt); end end return;