Skip to content

Commit 6dd1d9c

Browse files
author
fangq
committed
apply fixes in loadjson/savejson to loadubjson and saveubjson
git-svn-id: http://svn.code.sf.net/p/iso2mesh/code/trunk/jsonlab@488 786e58fb-9377-0410-9ff7-e4ac0ac0635c
1 parent abb57c9 commit 6dd1d9c

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

loadubjson.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ function parse_char(c)
312312
%%-------------------------------------------------------------------------
313313

314314
function num = parse_number(varargin)
315-
global pos inStr len isoct fileendian systemendian
315+
global pos inStr isoct fileendian systemendian
316316
id=strfind('iUIlLdD',inStr(pos));
317317
if(isempty(id))
318318
error_pos('expecting a number at position %d');
@@ -335,7 +335,6 @@ function parse_char(c)
335335

336336
function val = parse_value(varargin)
337337
global pos inStr len
338-
true = 1; false = 0;
339338

340339
switch(inStr(pos))
341340
case {'S','C','H'}

saveubjson.m

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,32 +180,33 @@
180180
dim=size(item);
181181
end
182182
len=numel(item);
183+
forcearray= (len>1 || (jsonopt('NoRowBracket',1,varargin{:})==0 && level>0));
183184

184185
if(~isempty(name))
185-
if(len>1) txt=[N_(checkname(name,varargin{:})) '[']; end
186+
if(forcearray) txt=[N_(checkname(name,varargin{:})) '[']; end
186187
else
187-
if(len>1) txt='['; end
188+
if(forcearray) txt='['; end
188189
end
189190
for j=1:dim(2)
190191
if(dim(1)>1) txt=[txt '[']; end
191192
for i=1:dim(1)
192193
names = fieldnames(item(i,j));
193-
if(~isempty(name) && len==1)
194+
if(~isempty(name) && len==1 && ~forcearray)
194195
txt=[txt N_(checkname(name,varargin{:})) '{'];
195196
else
196197
txt=[txt '{'];
197198
end
198199
if(~isempty(names))
199200
for e=1:length(names)
200201
txt=[txt obj2ubjson(names{e},getfield(item(i,j),...
201-
names{e}),level+(dim(1)>1)+1+(len>1),varargin{:})];
202+
names{e}),level+(dim(1)>1)+1+forcearray,varargin{:})];
202203
end
203204
end
204205
txt=[txt '}'];
205206
end
206207
if(dim(1)>1) txt=[txt ']']; end
207208
end
208-
if(len>1) txt=[txt ']']; end
209+
if(forcearray) txt=[txt ']']; end
209210

210211
%%-------------------------------------------------------------------------
211212
function txt=str2ubjson(name,item,level,varargin)
@@ -241,7 +242,7 @@
241242
end
242243

243244
if(length(size(item))>2 || issparse(item) || ~isreal(item) || ...
244-
isempty(item) || jsonopt('ArrayToStruct',0,varargin{:}))
245+
(isempty(item) && any(size(item))) ||jsonopt('ArrayToStruct',0,varargin{:}))
245246
cid=I_(uint32(max(size(item))));
246247
if(isempty(name))
247248
txt=['{' N_('_ArrayType_'),S_(class(item)),N_('_ArraySize_'),I_a(size(item),cid(1)) ];

0 commit comments

Comments
 (0)