mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
Core: Json now allows (non-standard, but widely supported) redundant ',' at the end of object proporties list/array list
git-svn-id: svn://ultimatepp.org/upp/trunk@6991 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
235d4d1600
commit
7dcee8b6a6
3 changed files with 33 additions and 23 deletions
|
|
@ -28,23 +28,24 @@ Value ParseJSON(CParser& p)
|
|||
return false;
|
||||
if(p.Char('{')) {
|
||||
ValueMap m;
|
||||
if(!p.IsChar('}'))
|
||||
do {
|
||||
String key = p.ReadString();
|
||||
p.PassChar(':');
|
||||
m.Add(key, ParseJSON(p));
|
||||
}
|
||||
while(p.Char(','));
|
||||
p.PassChar('}');
|
||||
while(!p.Char('}')) {
|
||||
String key = p.ReadString();
|
||||
p.PassChar(':');
|
||||
m.Add(key, ParseJSON(p));
|
||||
if(p.Char('}')) // Stray ',' at the end of list is allowed...
|
||||
break;
|
||||
p.PassChar(',');
|
||||
}
|
||||
return m;
|
||||
}
|
||||
if(p.Char('[')) {
|
||||
ValueArray va;
|
||||
if(!p.IsChar(']'))
|
||||
do
|
||||
va.Add(ParseJSON(p));
|
||||
while(p.Char(','));
|
||||
p.PassChar(']');
|
||||
while(!p.Char(']')) {
|
||||
va.Add(ParseJSON(p));
|
||||
if(p.Char(']')) // Stray ',' at the end of list is allowed...
|
||||
break;
|
||||
p.PassChar(',');
|
||||
}
|
||||
return va;
|
||||
}
|
||||
p.ThrowError("Unrecognized JSON element");
|
||||
|
|
@ -57,8 +58,8 @@ Value ParseJSON(const char *s)
|
|||
CParser p(s);
|
||||
return ParseJSON(p);
|
||||
}
|
||||
catch(CParser::Error) {
|
||||
return ErrorValue();
|
||||
catch(CParser::Error e) {
|
||||
return ErrorValue(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ bool JsonView::Key(dword key, int count)
|
|||
|
||||
int JsonView::AddNode(int parent_id, const Value& id, const String& name, const Value& v)
|
||||
{
|
||||
if(IsError(v)) {
|
||||
parent_id = tree.Add(parent_id, IdeImg::Error(), "ERROR", "[@R [* " + GetErrorText(v));
|
||||
}
|
||||
else
|
||||
if(v.Is<ValueMap>()) {
|
||||
ValueMap m = v;
|
||||
parent_id = tree.Add(parent_id, IdeImg::JsonStruct(), id, "[G1 [* " + name);
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ IMAGE_ID(JsonArray)
|
|||
IMAGE_ID(JsonString)
|
||||
IMAGE_ID(JsonNumber)
|
||||
IMAGE_ID(JsonBool)
|
||||
IMAGE_ID(Error)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,152,141,153,131,32,12,134,29,161,35,220,116,157,163,163,117,179,92,181,141,66,126,72,20,17,84,194,147,167)
|
||||
|
|
@ -2350,11 +2351,15 @@ IMAGE_DATA(255,45,72,215,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|||
IMAGE_END_DATA(1632, 17)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,148,81,14,131,48,8,134,57,194,246,216,100,39,219,105,246,226,21,118,131,222,171,55,97,105,172,209,24,160)
|
||||
IMAGE_DATA(80,156,235,84,146,63,49,218,126,253,41,8,220,225,6,7,13,116,106,100,32,182,137,99,192,107,150,244,174,198,96,207)
|
||||
IMAGE_DATA(189,24,205,12,111,93,90,251,195,223,167,125,196,129,135,9,21,222,34,169,219,197,203,216,203,195,244,179,172,159,183,216)
|
||||
IMAGE_DATA(255,79,247,240,75,15,6,245,29,215,48,177,13,147,7,190,85,242,50,52,251,67,8,228,179,150,145,247,80,178,230,32)
|
||||
IMAGE_DATA(249,208,230,193,249,176,220,35,231,195,194,248,70,45,107,12,131,250,142,19,13,147,1,252,133,27,98,140,152,82,18,149)
|
||||
IMAGE_DATA(215,148,243,72,15,121,205,242,44,138,81,190,81,12,156,60,44,247,174,57,26,15,53,70,241,240,148,60,72,185,104,61)
|
||||
IMAGE_DATA(72,62,52,247,32,49,44,30,184,92,44,30,132,126,216,98,152,80,30,186,137,15,135,168,203,80,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(224, 4)
|
||||
IMAGE_DATA(120,156,237,150,209,17,130,48,12,134,59,129,167,143,220,241,230,18,44,194,139,91,184,129,47,60,250,234,6,188,48,8)
|
||||
IMAGE_DATA(19,56,0,231,34,145,28,5,17,210,146,180,136,21,201,93,174,180,144,191,95,211,152,83,29,212,94,173,212,192,211,27)
|
||||
IMAGE_DATA(13,0,55,55,105,168,203,203,109,107,83,26,198,125,55,13,103,13,223,123,113,173,15,255,58,13,195,86,220,76,40,243)
|
||||
IMAGE_DATA(189,36,118,185,248,106,44,197,208,254,88,134,207,115,196,255,82,30,190,201,32,240,176,109,107,38,178,102,18,195,141,229)
|
||||
IMAGE_DATA(190,26,156,248,40,138,200,103,174,6,198,80,46,61,131,141,131,123,14,19,135,36,143,38,14,137,198,39,238,114,74,67)
|
||||
IMAGE_DATA(224,97,219,31,53,147,76,249,95,92,150,231,57,84,85,101,117,252,70,239,71,50,224,55,253,189,40,13,253,142,210,128)
|
||||
IMAGE_DATA(150,161,31,59,212,225,48,76,105,104,134,147,141,193,118,22,46,131,141,131,147,7,155,134,132,193,116,22,9,131,165,30)
|
||||
IMAGE_DATA(230,104,38,20,67,56,182,64,51,153,163,227,66,17,211,127,31,113,157,169,145,166,59,90,3,215,241,61,247,60,247,227)
|
||||
IMAGE_DATA(123,60,206,153,12,70,22,33,195,136,197,129,97,196,226,200,208,177,8,238,194,200,162,227,93,25,58,22,207,248,115,237)
|
||||
IMAGE_DATA(133,30,93,236,145,36,117,62,10,5,56,226,92,24,159,98,92,191,62,180,142,36,47,113,237,112,189,54,241,56,170,38)
|
||||
IMAGE_DATA(47,177,144,37,169,189,212,177,165,158,147,246,4,79,58,77,178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(352, 5)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue