Search code examples
c++rapidjson

RapidJSON get member name of Value


Wondering if it's possible to extract the name of a rapidjson::Value directly from it.

For instance, assume we have the following JSON data:

{
    "name":
    [
        { /*some data*/ },
        { /*some more data*/ }
    ]
}

And I retrieve the "name" array from it:

rapidjson::Value& myJSONArray = document["name"];

Can I retrieve "name" back from that Value? Something like this:

std::string memberName = myJSONArray.GetMemberName(); // returns "name"

Solution

  • No. It is not possible because an array may not be within an object. You may use iterator.

    Value::MemberIterator itr = document.FindMember("name");
    string n = itr->name.GetString();
    Value& v = itr->value;