Skip to content

Commit dc4f0e7

Browse files
author
fangq
committed
merge char escape handeling to escapejsonstring in savejson
git-svn-id: http://svn.code.sf.net/p/iso2mesh/code/trunk/jsonlab@467 786e58fb-9377-0410-9ff7-e4ac0ac0635c
1 parent 4e88f2f commit dc4f0e7

File tree

3 files changed

+12
-21
lines changed

3 files changed

+12
-21
lines changed

examples/example3.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"value": "_&File",
44
"popup": {
55
"menuitem": [
6-
{"value": "_&New", "onclick": "CreateNewDoc(\"\"\")"},
6+
{"value": "_&New", "onclick": "CreateNewDoc(\"'\\\"Untitled\\\"'\")"},
77
{"value": "_&Open", "onclick": "OpenDoc()"},
88
{"value": "_&Close", "onclick": "CloseDoc()"}
99
]

examples/jsonlab_selftest.matlab

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"menuitem": [
8080
{
8181
"value": "_&New",
82-
"onclick": "CreateNewDoc(\"\"\")"
82+
"onclick": "CreateNewDoc(\"'\\\"Untitled\\\"'\")"
8383
},
8484
{
8585
"value": "_&Open",
@@ -95,7 +95,7 @@
9595
}
9696
}
9797

98-
{"data": {"menu": {"id": "file","value": "_&File","popup": {"menuitem": [{"value": "_&New","onclick": "CreateNewDoc(\"\"\")"},{"value": "_&Open","onclick": "OpenDoc()"},{"value": "_&Close","onclick": "CloseDoc()"}]}}}}
98+
{"data": {"menu": {"id": "file","value": "_&File","popup": {"menuitem": [{"value": "_&New","onclick": "CreateNewDoc(\"'\\\"Untitled\\\"'\")"},{"value": "_&Open","onclick": "OpenDoc()"},{"value": "_&Close","onclick": "CloseDoc()"}]}}}}
9999

100100
===============================================
101101
>> example4.json
@@ -128,17 +128,17 @@
128128

129129
>> >> ===============================================
130130
>> example1.json
131-
{SUdata{SU firstNameSUJohnSUlastNameSUSmithSUageiSUaddress{SUstreetAddressSU21 2nd StreetSUcitySUNew YorkSUstateSUNYSU
132-
postalCodeSU10021}SUphoneNumber[{SUtypeSUhomeSUnumberSU212 555-1234}{SUtypeSUfaxSUnumberSU646 555-4567}]}}
131+
{Udata{U firstNameSUJohnUlastNameSUSmithUageiUaddress{UstreetAddressSU21 2nd StreetUcitySUNew YorkUstateSUNYU
132+
postalCodeSU10021}UphoneNumber[{UtypeSUhomeUnumberSU212 555-1234}{UtypeSUfaxUnumberSU646 555-4567}]}}
133133
===============================================
134134
>> example2.json
135-
{SUdata{SUglossary{SUtitleSUexample glossarySUGlossDiv{SUtitleCSSU GlossList{SU
136-
GlossEntry{SUIDSUSGMLSUSortAsSUSGMLSU GlossTermSU$Standard Generalized Markup LanguageSUAcronymSUSGMLSUAbbrevSUISO 8879:1986SUGlossDef{SUparaSUHA meta-markup language, used to create markup languages such as DocBook.SUGlossSeeAlso[SUGMLSUXML]}SUGlossSeeSUmarkup}}}}}}
135+
{Udata{Uglossary{UtitleSUexample glossaryUGlossDiv{UtitleCSU GlossList{U
136+
GlossEntry{UIDSUSGMLUSortAsSUSGMLU GlossTermSU$Standard Generalized Markup LanguageUAcronymSUSGMLUAbbrevSUISO 8879:1986UGlossDef{UparaSUHA meta-markup language, used to create markup languages such as DocBook.UGlossSeeAlso[SUGMLSUXML]}UGlossSeeSUmarkup}}}}}}
137137
===============================================
138138
>> example3.json
139-
{SUdata{SUmenu{SUidSUfileSUvalueSU_&FileSUpopup{SUmenuitem[{SUvalueSU_&NewSUonclickSUCreateNewDoc(""")}{SUvalueSU_&OpenSUonclickSU OpenDoc()}{SUvalueSU_&CloseSUonclickSU
139+
{Udata{Umenu{UidSUfileUvalueSU_&FileUpopup{Umenuitem[{UvalueSU_&NewUonclickSUCreateNewDoc("'\"Untitled\"'")}{UvalueSU_&OpenUonclickSU OpenDoc()}{UvalueSU_&CloseUonclickSU
140140
CloseDoc()}]}}}}
141141
===============================================
142142
>> example4.json
143-
{SUdata[{SUsample{SUrhoi}}{SUsample{SUrhoi}}[[$i#U
143+
{Udata[{Usample{Urhoi}}{Usample{Urhoi}}[[$i#U
144144
>>

savejson.m

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -276,16 +276,7 @@
276276
end
277277
isoct=jsonopt('IsOctave',0,varargin{:});
278278
for e=1:len
279-
if(isoct)
280-
val=regexprep(item(e,:),'\\','\\');
281-
val=regexprep(val,'"','\"');
282-
val=regexprep(val,'^"','\"');
283-
else
284-
val=regexprep(item(e,:),'\\','\\\\');
285-
val=regexprep(val,'"','\\"');
286-
val=regexprep(val,'^"','\\"');
287-
end
288-
val=escapejsonstring(val);
279+
val=escapejsonstring(item(e,:));
289280
if(len==1)
290281
obj=['"' checkname(name,varargin{:}) '": ' '"',val,'"'];
291282
if(isempty(name)) obj=['"',val,'"']; end
@@ -463,12 +454,12 @@
463454
if(vv(1)>=3.8) isoct=0; end
464455
end
465456
if(isoct)
466-
escapechars={'\a','\f','\n','\r','\t','\v'};
457+
escapechars={'\\','\"','\/','\a','\f','\n','\r','\t','\v'};
467458
for i=1:length(escapechars);
468459
newstr=regexprep(newstr,escapechars{i},escapechars{i});
469460
end
470461
else
471-
escapechars={'\a','\b','\f','\n','\r','\t','\v'};
462+
escapechars={'\\','\"','\/','\a','\b','\f','\n','\r','\t','\v'};
472463
for i=1:length(escapechars);
473464
newstr=regexprep(newstr,escapechars{i},regexprep(escapechars{i},'\\','\\\\'));
474465
end

0 commit comments

Comments
 (0)