Skip to content

Commit

Permalink
[bug] fix missing index_esc reset, add test for automap
Browse files Browse the repository at this point in the history
  • Loading branch information
fangq committed Jan 11, 2024
1 parent ef5b472 commit c43a758
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
3 changes: 3 additions & 0 deletions loadjson.m
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@
%% -------------------------------------------------------------------------
function [object, pos, index_esc, mmap] = parse_object(inputstr, pos, esc, index_esc, varargin)
oldpos = pos;
oldindex_esc = index_esc;
if (nargout > 3)
mmap = {};
origpath = varargin{1}.jsonpath_;
Expand All @@ -593,6 +594,7 @@
[str, pos, index_esc] = parseStr(inputstr, pos, esc, index_esc, varargin{:});
if (length(str) > 63)
pos = -oldpos;
index_esc = oldindex_esc;
object = [];
return
end
Expand All @@ -615,6 +617,7 @@
str = encodevarname(str, varargin{:});
if (length(str) > 63)
pos = -oldpos;
index_esc = oldindex_esc;
object = [];
return
end
Expand Down
2 changes: 2 additions & 0 deletions test/run_jsonlab_test.m
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ function run_jsonlab_test(tests)
test_jsonlab('empty name with map', @savejson, loadjson('{"":""}', 'usemap', 1), '{"":""}', 'compact', 1);
test_jsonlab('indentation', @savejson, savejson('s', containers.Map({'a', 'b'}, {[], struct('c', 1.1, 'd', struct('e', {1, 2}))})), ...
'"{\n\t\"s\":{\n\t\t\"a\":[],\n\t\t\"b\":{\n\t\t\t\"c\":1.1,\n\t\t\t\"d\":[\n\t\t\t\t{\n\t\t\t\t\t\"e\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"e\":2\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t}\n}\n"');
test_jsonlab('key longer than 63', @savejson, loadjson('{"...........":""}', 'usemap', 0), '{"...........":""}', 'compact', 1);
end
test_jsonlab('row vector', @savejson, [1, 2, 3], '[1,2,3]');
test_jsonlab('column vector', @savejson, [1; 2; 3], '[[1],[2],[3]]', 'compact', 1);
Expand Down Expand Up @@ -200,6 +201,7 @@ function run_jsonlab_test(tests)
test_jsonlab('empty name', @savebj, loadbj(['{U' 0 'U' 2 '}']), '{U<0>U<2>}', 'debug', 1);
if (exist('containers.Map'))
test_jsonlab('empty name with map', @savebj, loadbj(['{U' 0 'U' 2 '}'], 'usemap', 1), '{U<0>U<2>}', 'debug', 1);
test_jsonlab('key longer than 63', @savebj, loadbj(['{U' 11 '...........U' 2 '}'], 'usemap', 0), '{U<11>...........U<2>}', 'debug', 1);
end
test_jsonlab('row vector', @savebj, [1, 2, 3], '[$U#U<3><1><2><3>', 'debug', 1);
test_jsonlab('column vector', @savebj, [1; 2; 3], '[$U#[$U#U<2><3><1><1><2><3>', 'debug', 1);
Expand Down

0 comments on commit c43a758

Please sign in to comment.