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

@@ -90,6 +90,12 @@ public:
bool getEscapeUnicode() const;
/// Returns the flag for escaping unicode.
void setLowercaseHex(bool lowercaseHex);
/// Sets the flag for using lowercase hex numbers
bool getLowercaseHex() const;
/// Returns the flag for using lowercase hex numbers
ValueVec::const_iterator begin() const;
/// Returns the begin iterator for values.
@@ -206,6 +212,7 @@ private:
// is because Array can be returned stringified from a Dynamic::Var:toString(),
// so it must know whether to escape unicode or not.
bool _escapeUnicode;
bool _lowercaseHex;
};
@@ -224,6 +231,17 @@ inline bool Array::getEscapeUnicode() const
return _escapeUnicode;
}
inline void Array::setLowercaseHex(bool lowercaseHex)
{
_lowercaseHex = lowercaseHex;
}
inline bool Array::getLowercaseHex() const
{
return _lowercaseHex;
}
inline Array::ValueVec::const_iterator Array::begin() const
{

View File

@@ -101,7 +101,13 @@ public:
bool getEscapeUnicode() const;
/// Returns the flag for escaping unicode.
void setLowercaseHex(bool lowercaseHex);
/// Sets the flag for using lowercase hex numbers
bool getLowercaseHex() const;
/// Returns the flag for using lowercase hex numbers
Iterator begin();
/// Returns begin iterator for values.
@@ -255,6 +261,7 @@ private:
{
int options = Poco::JSON_WRAP_STRINGS;
options |= _escapeUnicode ? Poco::JSON_ESCAPE_UNICODE : 0;
options |= _lowercaseHex ? Poco::JSON_LOWERCASE_HEX : 0;
out << '{';
@@ -349,6 +356,7 @@ private:
// because Object can be returned stringified from Dynamic::Var::toString(),
// so it must know whether to escape unicode or not.
bool _escapeUnicode;
bool _lowercaseHex;
mutable StructPtr _pStruct;
mutable OrdStructPtr _pOrdStruct;
mutable bool _modified;
@@ -370,6 +378,17 @@ inline bool Object::getEscapeUnicode() const
return _escapeUnicode;
}
inline void Object::setLowercaseHex(bool lowercaseHex)
{
_lowercaseHex = lowercaseHex;
}
inline bool Object::getLowercaseHex() const
{
return _lowercaseHex;
}
inline Object::Iterator Object::begin()
{