optimize order preservation (keep pointers to keys instead of copies); remove (unnecessary) prserveOrder flag from Stringifier::stringify()

This commit is contained in:
unknown
2015-06-01 10:29:51 -05:00
parent 4ac92e5cb2
commit 956f38574a
6 changed files with 64 additions and 39 deletions

View File

@@ -1394,13 +1394,27 @@ void JSONTest::testStringify()
void JSONTest::testStringifyPreserveOrder()
{
Object jObj(true);
jObj.set("foo", 0);
jObj.set("bar", 0);
jObj.set("baz", 0);
Object presObj(true);
presObj.set("foo", 0);
presObj.set("bar", 0);
presObj.set("baz", 0);
std::stringstream ss;
jObj.stringify(ss);
presObj.stringify(ss);
assert(ss.str() == "{\"foo\":0,\"bar\":0,\"baz\":0}");
ss.str("");
Stringifier::stringify(presObj, ss);
assert(ss.str() == "{\"foo\":0,\"bar\":0,\"baz\":0}");
Object noPresObj;
noPresObj.set("foo", 0);
noPresObj.set("bar", 0);
noPresObj.set("baz", 0);
ss.str("");
noPresObj.stringify(ss);
assert(ss.str() == "{\"bar\":0,\"baz\":0,\"foo\":0}");
ss.str("");
Stringifier::stringify(noPresObj, ss);
assert(ss.str() == "{\"bar\":0,\"baz\":0,\"foo\":0}");
std::string json = "{ \"Simpsons\" : { \"husband\" : { \"name\" : \"Homer\" , \"age\" : 38 }, \"wife\" : { \"name\" : \"Marge\", \"age\" : 36 }, "
"\"children\" : [ \"Bart\", \"Lisa\", \"Maggie\" ], "