[Development] QJsonValue (was: Re: Qt 5.2 header diff: QtCore)
Thiago Macieira
thiago.macieira at intel.com
Tue Nov 5 17:42:38 CET 2013
On terça-feira, 5 de novembro de 2013 11:44:41, Marc Mutz wrote:
> On Tuesday, November 05, 2013 01:07:32 Thiago Macieira wrote:
> > diff --git a/src/corelib/json/qjsonvalue.h b/src/corelib/json/qjsonvalue.h
> > index b8bdf55..c0ecdd2 100644
> > --- a/src/corelib/json/qjsonvalue.h
> > +++ b/src/corelib/json/qjsonvalue.h
> >
> > @@ -79,6 +79,7 @@ public:
> > QJsonValue(bool b);
> > QJsonValue(double n);
> > QJsonValue(int n);
> >
> > + QJsonValue(qint64 n);
> >
> > QJsonValue(const QString &s);
> > QJsonValue(QLatin1String s);
> > QJsonValue(const QJsonArray &a);
> >
> > @@ -102,6 +103,7 @@ public:
> > inline bool isUndefined() const { return type() == Undefined; }
> >
> > bool toBool(bool defaultValue = false) const;
> >
> > + int toInt(int defaultValue = 0) const;
> >
> > double toDouble(double defaultValue = 0) const;
> > QString toString(const QString &defaultValue = QString()) const;
> > QJsonArray toArray() const;
> >
> > @@ -157,6 +159,7 @@ public:
> > inline bool isUndefined() const { return type() ==
> >
> > QJsonValue::Undefined; }
> >
> > inline bool toBool() const { return toValue().toBool(); }
> >
> > + inline int toInt() const { return toValue().toInt(); }
> >
> > inline double toDouble() const { return toValue().toDouble(); }
> > inline QString toString() const { return toValue().toString(); }
> > QJsonArray toArray() const;
> >
> > @@ -176,7 +179,7 @@ private:
> > uint index : 31;
> >
> > };
>
> It seems there's no way to get the 64bit value back, once set with the new
> ctor.
I think that was intentional since JSON is still using ECMAScript data types,
whose Number type is a double precision floating point. Inserting any integer
larger than 2^52 will result in loss of precision. So this forces people to
use the toDouble() method to get the value back.
> And isn't the new ctor going to be ambiguous?
Not more than it is. Unless you're seeing something I'm not. Can you expand
further?
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20131105/555887c3/attachment.sig>
More information about the Development
mailing list