Skip to content

Commit 25ad795

Browse files
committed
unescape string in fast array parser mode
1 parent 30a842e commit 25ad795

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

loadjson.m

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,9 @@
223223
arraystr=regexprep(arraystr,'\"','''');
224224
end
225225
object=eval(arraystr);
226+
if(iscell(object))
227+
object=cellfun(@unescapejsonstring,object,'UniformOutput',false);
228+
end
226229
pos=endpos;
227230
catch
228231
while 1
@@ -510,8 +513,11 @@ function error_pos(msg, inStr)
510513

511514
function newstr=unescapejsonstring(str)
512515
newstr=str;
516+
if(~ischar(str))
517+
return;
518+
end
513519
escapechars={'\\','\"','\/','\a','\b','\f','\n','\r','\t','\v'};
514520
for i=1:length(escapechars);
515521
newstr=regexprep(newstr,regexprep(escapechars{i},'\\','\\\\'), escapechars{i});
516522
end
517-
newstr=regexprep(newstr,'\\\\(u[0-9a-fA-F]{4}[^0-9a-fA-F]*)','\\$1');
523+
newstr=regexprep(newstr,'\\u([0-9A-Fa-f]{4})', '${char(base2dec($1,16))}');

0 commit comments

Comments
 (0)