[Development] [RFO QTBUG-84739] QJsonValue::fromVariant containing QByteArray (Thiago Macieira)
Thiago Macieira
thiago.macieira at intel.com
Fri Jul 3 20:07:13 CEST 2020
On Friday, 3 July 2020 05:16:11 PDT Arnaud Clère wrote:
> > [1] https://tools.ietf.org/html/rfc7049#section-4.1
>
> Even if non normative, these advices are useful and even more so when
> implemented in such wide-spread library as Qt, so if it can be opted-in, I
> would definitely prefer option c)
That advice applies about converting CBOR to JSON. Ever since I introduced
QCborValue, doing:
QCborValue(QByteArray("Hello")).toJsonValue()
resulted in
QJsonValue("SGVsbG8")
That will not change. You may call this surprising, but it's in line with
standards and is explicitly documented as such.
It's also the reason this change happened to QJsonValue, because we reused
QCborValue::fromVariant and then converted from that to JSON.
Also note that you can tell CBOR how to encode a byte array to JSON:
QByteArray hello("hello");
QCborValue(hello).toJsonValue();
// "SGVsbG8"
QCborValue(QCborKnownTags::ExpectedBase64, hello).toJsonValue();
// "SGVsbG8="
QCborValue(QCborKnownTags::ExpectedBase16, hello).toJsonalue();
// "48656c6c6f"
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel System Software Products
More information about the Development
mailing list