Чтение json с помощью указателя rapidjson

Пытаюсь интегрировать rapidjson в свое приложение. Используется для чтения (проверенного с помощью онлайн-инструмента) простого файла конфигурации, например:

{
    "filecontent": "appsettings",
    "fileversion": 1,
    "appsettings": {
        "general": {
            "sync": "false",
            "sound": "true"
        },
...

Это мой код:

QString path = keypath( key ); //.prepend("/");
rapidjson::Value* hello = rapidjson::Pointer( "/appsettings/general/sound" ) //path.toStdString().c_str()
                          .Get(rapidJsonDoc_);

if ( hello ) {
    QVariant retStr( hello->GetString() );
    qDebug()<<"--> " <<path<<" --> " << retStr;
    ret = QVariant::fromValue( retStr );
}else{
    qDebug()<<"Value not found!";
}
return ret;

Если я добавлю к строке указателя /, как я понимаю в примерах, получится value not found. Если я уберу косую черту, if (hello) будет истинным, но не вернет ожидаемое значение.

rapidJsonDoc_ относится к типу rapidjson::Document.

Пожалуйста, помогите мне с правильным синтаксисом. Я смотрю на исходный код Rapidjson и ничего не понимаю, он настолько полон шаблонов и сложных подписей...

Обновить:

в соответствии с этим пост-модификация Qt QJsonDocument невозможна, как я хочу.


person user2366975    schedule 13.04.2017    source источник