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:
Aleksandar Fabijanic
2023-11-27 22:43:20 +01:00
committed by GitHub
parent 9141368eca
commit 57bc0bbbb5
13 changed files with 292 additions and 173 deletions

View File

@@ -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;