|
109 | 109 | if((isstruct(obj) || iscell(obj))&& isempty(rootname) && forceroot) |
110 | 110 | rootname='root'; |
111 | 111 | end |
112 | | -nl=sprintf('\n'); |
| 112 | + |
| 113 | +whitespaces=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); |
113 | 114 | if(jsonopt('Compact',0,opt)==1) |
114 | | - nl=''; |
| 115 | + whitespaces=struct('tab','','newline','','sep',','); |
| 116 | +end |
| 117 | +if(~isfield(opt,'whitespaces_')) |
| 118 | + opt.whitespaces_=whitespaces; |
115 | 119 | end |
116 | 120 |
|
| 121 | +nl=whitespaces.newline; |
| 122 | + |
117 | 123 | json=obj2json(rootname,obj,rootlevel,opt); |
118 | 124 | if(rootisarray) |
119 | 125 | json=sprintf('%s%s',json,nl); |
|
164 | 170 | dim=size(item); |
165 | 171 | end |
166 | 172 | len=numel(item); |
167 | | -padding0=repmat(sprintf('\t'),1,level); |
168 | | -padding2=repmat(sprintf('\t'),1,level+1); |
169 | | -nl=sprintf('\n'); |
170 | | -if(jsonopt('Compact',0,varargin{:})==1) |
171 | | - padding0='';padding2='';nl=''; |
172 | | -end |
| 173 | +ws=jsonopt('whitespaces_',struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')),varargin{:}); |
| 174 | +padding0=repmat(ws.tab,1,level); |
| 175 | +padding2=repmat(ws.tab,1,level+1); |
| 176 | +nl=ws.newline; |
173 | 177 | if(len>1) |
174 | 178 | if(~isempty(name)) |
175 | 179 | txt=sprintf('%s"%s": [%s',padding0, checkname(name,varargin{:}),nl); name=''; |
|
207 | 211 | dim=size(item); |
208 | 212 | end |
209 | 213 | len=numel(item); |
210 | | -padding0=repmat(sprintf('\t'),1,level); |
211 | | -padding2=repmat(sprintf('\t'),1,level+1); |
212 | | -padding1=repmat(sprintf('\t'),1,level+(dim(1)>1)+(len>1)); |
213 | | -nl=sprintf('\n'); |
214 | | -if(jsonopt('Compact',0,varargin{:})==1) |
215 | | - padding0='';padding1='';padding2='';nl=''; |
216 | | -end |
| 214 | +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n')); |
| 215 | +ws=jsonopt('whitespaces_',ws,varargin{:}); |
| 216 | +padding0=repmat(ws.tab,1,level); |
| 217 | +padding2=repmat(ws.tab,1,level+1); |
| 218 | +padding1=repmat(ws.tab,1,level+(dim(1)>1)+(len>1)); |
| 219 | +nl=ws.newline; |
217 | 220 |
|
218 | 221 | if(~isempty(name)) |
219 | 222 | if(len>1) txt=sprintf('%s"%s": [%s',padding0,checkname(name,varargin{:}),nl); end |
|
253 | 256 | end |
254 | 257 | item=reshape(item, max(size(item),[1 0])); |
255 | 258 | len=size(item,1); |
256 | | -nl=sprintf('\n'); |
257 | | -padding1=repmat(sprintf('\t'),1,level); |
258 | | -padding0=repmat(sprintf('\t'),1,level+1); |
259 | | -if(jsonopt('Compact',0,varargin{:})==1) |
260 | | - padding0=''; |
261 | | - padding1=''; |
262 | | - nl=''; |
263 | | -end |
264 | | -sep=sprintf(',%s',nl); |
| 259 | +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); |
| 260 | +ws=jsonopt('whitespaces_',ws,varargin{:}); |
| 261 | +padding1=repmat(ws.tab,1,level); |
| 262 | +padding0=repmat(ws.tab,1,level+1); |
| 263 | +nl=ws.newline; |
| 264 | +sep=ws.sep; |
265 | 265 |
|
266 | 266 | if(~isempty(name)) |
267 | 267 | if(len>1) txt=sprintf('%s"%s": [%s',padding1,checkname(name,varargin{:}),nl); end |
|
297 | 297 | if(~isnumeric(item) && ~islogical(item)) |
298 | 298 | error('input is not an array'); |
299 | 299 | end |
300 | | -nl=sprintf('\n'); |
301 | | -padding1=repmat(sprintf('\t'),1,level); |
302 | | -padding0=repmat(sprintf('\t'),1,level+1); |
303 | | -if(jsonopt('Compact',0,varargin{:})==1) |
304 | | - padding0='';padding1='';nl=''; |
305 | | -end |
306 | | -sep=sprintf(',%s',nl); |
| 300 | +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); |
| 301 | +ws=jsonopt('whitespaces_',ws,varargin{:}); |
| 302 | +padding1=repmat(ws.tab,1,level); |
| 303 | +padding0=repmat(ws.tab,1,level+1); |
| 304 | +nl=ws.newline; |
| 305 | +sep=ws.sep; |
307 | 306 |
|
308 | 307 | if(length(size(item))>2 || issparse(item) || ~isreal(item) || ... |
309 | 308 | isempty(item) ||jsonopt('ArrayToStruct',0,varargin{:})) |
|
369 | 368 |
|
370 | 369 | %%------------------------------------------------------------------------- |
371 | 370 | function txt=matdata2json(mat,level,varargin) |
372 | | -if(jsonopt('Compact',0,varargin{:})==1) |
373 | | - tab=''; |
374 | | - nl=''; |
375 | | -else |
376 | | - tab=sprintf('\t'); |
377 | | - nl=sprintf('\n'); |
378 | | -end |
| 371 | + |
| 372 | +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); |
| 373 | +ws=jsonopt('whitespaces_',ws,varargin{:}); |
| 374 | +tab=ws.tab; |
| 375 | +nl=ws.newline; |
| 376 | + |
379 | 377 | if(size(mat,1)==1) |
380 | 378 | pre=''; |
381 | 379 | post=''; |
|
0 commit comments