尝试将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的源代码,无法理解一件事,它充满了模板和复杂的签名......
更新
根据this修改Qt QJsonDocument的帖子不可能像我想要的那样。