Пытаюсь интегрировать 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 невозможна, как я хочу.