用rapidjson指针读取json

时间:2017-04-13 22:30:29

标签: c++ json qt 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的源代码,无法理解一件事,它充满了模板和复杂的签名......

更新

根据this修改Qt QJsonDocument的帖子不可能像我想要的那样。

0 个答案:

没有答案