Important: Please read the Qt Code of Conduct -

[SOLVED] Update value in QJsonObject

  • Hi,

    I have a QTreeView that represents a QJsonObject. When I change a value in the tree view, I'd like to update the corresponding value in the QJsonObject.

    I tried using myJsonObject.value(key) method to find the value by it's key, but this only works for key:value pairs in the top level of the tree. How can I find a key:value pair that is not on the top level? If I must iterate over it, how can I know if an element in the JSON map is a node or a leaf?


  • Let me reformulate the question:

    I have a QJsonObject that has this structure:

    myJsonObject.find("A") returns "a", but myJsonObject.find("Y") returns "undefined" instead of "y". Same for myJsonObject.value("Y"), or myJsonObject.values("X").

    How can I find "X" or "Y" in such a structure?

    I tried converting QJsonObject to QVariantMap, with the same result.


  • Lifetime Qt Champion


    Since you have a tree, you could follow the branches to get to the value.
    i.e you know that X is under G2. You can rebuild the path from your model data (or are you using QTreeWidget ?)

    Hope it helps

  • I'm using a QTreeView.

    Your solution makes sense. I'll give it a try. Thanks a lot!

Log in to reply