[Interest] Qt 5: Converting QJsonValue to QJsonArray

Stephen Chu stephen at ju-ju.com
Mon Aug 13 23:21:08 CEST 2012

On 8/13/12 9:24 AM, lars.knoll at nokia.com wrote:
> On Aug 8, 2012, at 9:14 PM, ext Stephen Chu <stephen at ju-ju.com> wrote:
>> I am trying out the new QJsonValue in Qt 5 and find myself wondering:
>> Does converting a QJsonValue which is an array to a QJsonArray with
>> QJsonValue::toArray() makes a copy of the underlying data?
>> Say I load a JSON file which is an object that contains an array with
>> thousands of items using QJsonDocument:
>>      auto myObj = QJsonDocument::fromJson(jsonData).object();
>>      auto myArray = myObject["theArray"].toArray();
>> How efficient is the conversion? Does it make a deep copy of the data in
>> the original object to the new array?
> No it doesn't make any deep copies as long as the data is not being modified.

Thanks. That's good to know.

Now, what happens if I want to modify one of the 1000 items in an array 
that is an item of a QJsonObject? Looks like I need to make a copy of 
the array with toArray(), change the item, then assign the modified (and 
deep copied) array back to the item in the object?

There doesn't seem to have a way to get a reference to a second-level 
item in an object or array.

More information about the Interest mailing list