mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-25 02:06:04 +02:00
fix(JSON): Arbitrary indent of 2 applied to JSON string objects Var conversion #3253
This commit is contained in:
@@ -379,7 +379,7 @@ public:
|
|||||||
void convert(std::string& s) const
|
void convert(std::string& s) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
_val->stringify(oss, 2);
|
_val->stringify(oss);
|
||||||
s = oss.str();
|
s = oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,7 +513,7 @@ public:
|
|||||||
void convert(std::string& s) const
|
void convert(std::string& s) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
_val.stringify(oss, 2);
|
_val.stringify(oss);
|
||||||
s = oss.str();
|
s = oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -570,7 +570,7 @@ public:
|
|||||||
void convert(std::string& s) const
|
void convert(std::string& s) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
_val->stringify(oss, 2);
|
_val->stringify(oss);
|
||||||
s = oss.str();
|
s = oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -712,7 +712,7 @@ public:
|
|||||||
void convert(std::string& s) const
|
void convert(std::string& s) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
_val.stringify(oss, 2);
|
_val.stringify(oss);
|
||||||
s = oss.str();
|
s = oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1701,6 +1701,43 @@ void JSONTest::testStringifyPreserveOrder()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void JSONTest::testVarConvert()
|
||||||
|
{
|
||||||
|
std::string json = "{ \"foo\" : { \"bar\" : \"baz\", \"arr\": [1, 2, 3]} }";
|
||||||
|
Parser parser;
|
||||||
|
Var result;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = parser.parse(json);
|
||||||
|
}
|
||||||
|
catch (JSONException& jsone)
|
||||||
|
{
|
||||||
|
std::cout << jsone.message() << std::endl;
|
||||||
|
assertTrue(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue(result.type() == typeid(Object::Ptr));
|
||||||
|
|
||||||
|
std::string cvt;
|
||||||
|
result.convert(cvt);
|
||||||
|
assertTrue(cvt == "{\"foo\":{\"arr\":[1,2,3],\"bar\":\"baz\"}}");
|
||||||
|
|
||||||
|
Object::Ptr object = result.extract<Object::Ptr>();
|
||||||
|
Object::Ptr f = object->getObject("foo");
|
||||||
|
|
||||||
|
Var o = f;
|
||||||
|
cvt.clear();
|
||||||
|
o.convert(cvt);
|
||||||
|
assertTrue(cvt == "{\"arr\":[1,2,3],\"bar\":\"baz\"}");
|
||||||
|
|
||||||
|
Var a = f->get("arr");
|
||||||
|
cvt.clear();
|
||||||
|
a.convert(cvt);
|
||||||
|
assertTrue(cvt == "[1,2,3]");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void JSONTest::testValidJanssonFiles()
|
void JSONTest::testValidJanssonFiles()
|
||||||
{
|
{
|
||||||
Poco::Path pathPattern(getTestFilesPath("valid"));
|
Poco::Path pathPattern(getTestFilesPath("valid"));
|
||||||
@@ -2249,6 +2286,7 @@ CppUnit::Test* JSONTest::suite()
|
|||||||
CppUnit_addTest(pSuite, JSONTest, testPrintHandler);
|
CppUnit_addTest(pSuite, JSONTest, testPrintHandler);
|
||||||
CppUnit_addTest(pSuite, JSONTest, testStringify);
|
CppUnit_addTest(pSuite, JSONTest, testStringify);
|
||||||
CppUnit_addTest(pSuite, JSONTest, testStringifyPreserveOrder);
|
CppUnit_addTest(pSuite, JSONTest, testStringifyPreserveOrder);
|
||||||
|
CppUnit_addTest(pSuite, JSONTest, testVarConvert);
|
||||||
CppUnit_addTest(pSuite, JSONTest, testValidJanssonFiles);
|
CppUnit_addTest(pSuite, JSONTest, testValidJanssonFiles);
|
||||||
CppUnit_addTest(pSuite, JSONTest, testInvalidJanssonFiles);
|
CppUnit_addTest(pSuite, JSONTest, testInvalidJanssonFiles);
|
||||||
CppUnit_addTest(pSuite, JSONTest, testInvalidUnicodeJanssonFiles);
|
CppUnit_addTest(pSuite, JSONTest, testInvalidUnicodeJanssonFiles);
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public:
|
|||||||
void testPrintHandler();
|
void testPrintHandler();
|
||||||
void testStringify();
|
void testStringify();
|
||||||
void testStringifyPreserveOrder();
|
void testStringifyPreserveOrder();
|
||||||
|
void testVarConvert();
|
||||||
|
|
||||||
void testValidJanssonFiles();
|
void testValidJanssonFiles();
|
||||||
void testInvalidJanssonFiles();
|
void testInvalidJanssonFiles();
|
||||||
|
|||||||
Reference in New Issue
Block a user