mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-23 08:31:43 +02:00
3102 json lowercase hex (#4306)
* Made it possible to use lowercase hex numbers, also when encoding JSON (#3102) Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be> * fix(JSONString): Remove deprecated toJSON functions #4305 * fix(NumericString): conversions inconsistencies #4304 --------- Co-authored-by: Archipel <thomas@weynwebworks.com> Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
This commit is contained in:

committed by
GitHub

parent
9141368eca
commit
57bc0bbbb5
@@ -27,7 +27,8 @@ namespace JSON {
|
||||
|
||||
Array::Array(int options):
|
||||
_modified(false),
|
||||
_escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0)
|
||||
_escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0),
|
||||
_lowercaseHex((options & Poco::JSON_LOWERCASE_HEX) != 0)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -36,7 +37,8 @@ Array::Array(const Array& other) :
|
||||
_values(other._values),
|
||||
_pArray(other._pArray),
|
||||
_modified(other._modified),
|
||||
_escapeUnicode(other._escapeUnicode)
|
||||
_escapeUnicode(other._escapeUnicode),
|
||||
_lowercaseHex(other._lowercaseHex)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -45,7 +47,8 @@ Array::Array(Array&& other) noexcept:
|
||||
_values(std::move(other._values)),
|
||||
_pArray(std::move(other._pArray)),
|
||||
_modified(other._modified),
|
||||
_escapeUnicode(other._escapeUnicode)
|
||||
_escapeUnicode(other._escapeUnicode),
|
||||
_lowercaseHex(other._lowercaseHex)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -58,6 +61,7 @@ Array& Array::operator = (const Array& other)
|
||||
_pArray = other._pArray;
|
||||
_modified = other._modified;
|
||||
_escapeUnicode = other._escapeUnicode;
|
||||
_lowercaseHex = other._lowercaseHex;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@@ -69,6 +73,7 @@ Array& Array::operator = (Array&& other) noexcept
|
||||
_pArray = std::move(other._pArray);
|
||||
_modified = other._modified;
|
||||
_escapeUnicode = other._escapeUnicode;
|
||||
_lowercaseHex = other._lowercaseHex;
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -154,6 +159,7 @@ void Array::stringify(std::ostream& out, unsigned int indent, int step) const
|
||||
{
|
||||
int options = Poco::JSON_WRAP_STRINGS;
|
||||
options |= _escapeUnicode ? Poco::JSON_ESCAPE_UNICODE : 0;
|
||||
options |= _lowercaseHex ? Poco::JSON_LOWERCASE_HEX : 0;
|
||||
|
||||
if (step == -1) step = indent;
|
||||
|
||||
|
@@ -27,6 +27,7 @@ namespace JSON {
|
||||
Object::Object(int options):
|
||||
_preserveInsOrder((options & Poco::JSON_PRESERVE_KEY_ORDER) != 0),
|
||||
_escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0),
|
||||
_lowercaseHex((options & Poco::JSON_LOWERCASE_HEX) != 0),
|
||||
_modified(false)
|
||||
{
|
||||
}
|
||||
@@ -35,6 +36,7 @@ Object::Object(int options):
|
||||
Object::Object(const Object& other) : _values(other._values),
|
||||
_preserveInsOrder(other._preserveInsOrder),
|
||||
_escapeUnicode(other._escapeUnicode),
|
||||
_lowercaseHex(other._lowercaseHex),
|
||||
_pStruct(!other._modified ? other._pStruct : 0),
|
||||
_modified(other._modified)
|
||||
{
|
||||
@@ -47,6 +49,7 @@ Object::Object(Object&& other) noexcept:
|
||||
_keys(std::move(other._keys)),
|
||||
_preserveInsOrder(other._preserveInsOrder),
|
||||
_escapeUnicode(other._escapeUnicode),
|
||||
_lowercaseHex(other._lowercaseHex),
|
||||
_pStruct(std::move(other._pStruct)),
|
||||
_pOrdStruct(std::move(other._pOrdStruct)),
|
||||
_modified(other._modified)
|
||||
@@ -67,6 +70,7 @@ Object &Object::operator = (const Object &other)
|
||||
_keys = other._keys;
|
||||
_preserveInsOrder = other._preserveInsOrder;
|
||||
_escapeUnicode = other._escapeUnicode;
|
||||
_lowercaseHex = other._lowercaseHex;
|
||||
_pStruct = !other._modified ? other._pStruct : 0;
|
||||
_modified = other._modified;
|
||||
}
|
||||
@@ -80,6 +84,7 @@ Object& Object::operator = (Object&& other) noexcept
|
||||
_keys = std::move(other._keys);
|
||||
_preserveInsOrder = other._preserveInsOrder;
|
||||
_escapeUnicode = other._escapeUnicode;
|
||||
_lowercaseHex = other._lowercaseHex;
|
||||
_pStruct = std::move(other._pStruct);
|
||||
_pOrdStruct = std::move(other._pOrdStruct);
|
||||
_modified = other._modified;
|
||||
|
@@ -28,6 +28,7 @@ namespace JSON {
|
||||
void Stringifier::stringify(const Var& any, std::ostream& out, unsigned int indent, int step, int options)
|
||||
{
|
||||
bool escapeUnicode = ((options & Poco::JSON_ESCAPE_UNICODE) != 0);
|
||||
bool lowercaseHex = ((options & Poco::JSON_LOWERCASE_HEX) != 0);
|
||||
|
||||
if (step == -1) step = indent;
|
||||
|
||||
@@ -35,24 +36,28 @@ void Stringifier::stringify(const Var& any, std::ostream& out, unsigned int inde
|
||||
{
|
||||
Object& o = const_cast<Object&>(any.extract<Object>());
|
||||
o.setEscapeUnicode(escapeUnicode);
|
||||
o.setLowercaseHex(lowercaseHex);
|
||||
o.stringify(out, indent == 0 ? 0 : indent, step);
|
||||
}
|
||||
else if (any.type() == typeid(Array))
|
||||
{
|
||||
Array& a = const_cast<Array&>(any.extract<Array>());
|
||||
a.setEscapeUnicode(escapeUnicode);
|
||||
a.setLowercaseHex(lowercaseHex);
|
||||
a.stringify(out, indent == 0 ? 0 : indent, step);
|
||||
}
|
||||
else if (any.type() == typeid(Object::Ptr))
|
||||
{
|
||||
Object::Ptr& o = const_cast<Object::Ptr&>(any.extract<Object::Ptr>());
|
||||
o->setEscapeUnicode(escapeUnicode);
|
||||
o->setLowercaseHex(lowercaseHex);
|
||||
o->stringify(out, indent == 0 ? 0 : indent, step);
|
||||
}
|
||||
else if (any.type() == typeid(Array::Ptr))
|
||||
{
|
||||
Array::Ptr& a = const_cast<Array::Ptr&>(any.extract<Array::Ptr>());
|
||||
a->setEscapeUnicode(escapeUnicode);
|
||||
a->setLowercaseHex(lowercaseHex);
|
||||
a->stringify(out, indent == 0 ? 0 : indent, step);
|
||||
}
|
||||
else if (any.isEmpty())
|
||||
|
Reference in New Issue
Block a user