没有这样的节点json提升

时间:2014-04-24 00:40:51

标签: c++ json boost

尽我所能来解决这个问题。在C ++中使用以下标题:

#include <boost/property_tree/ptree.hpp>
#include <string>

#include "../math/gmath.h"

class json
{
    public:
        json ( std::string filename );
        template <class T> T getData ( std::string key );
    private:
        std::string m_contents;
        boost::property_tree::ptree m_data;
};

template <class T> T json::getData ( std::string key )
{
    return m_data.get<T> ( key );
}

查看以下两个JSON文件。

我可以从以下JSON中找到所有数据。

{
    "gameName" : "File and Asset Test 1",
    "displayWidth" : 640,
    "displayHeight" : 480,
    "fullScreen" : false
}

但出于某种原因,我得到了#34;没有这样的节点&#34;在以下JSON上。

{
    "assetType" : "font",
    "assetName" : "default font",
    "assetFile" : "dat/assets/dfont.png",
    "charMap" : "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\\QWERTYUIOP{}|asdfghjkl;'ASDFGHJKL:\"zxcvbnm,./ZXCVBNM<>? "
}

这是错误:

在抛出&#39; boost :: exception_detail :: clone_impl&gt;&#39;的实例后终止调用   what():没有这样的节点(assetType)

事情是,我迭代输出键和值的整个事情,我看到&#34; assetType&#34;在列表中!为什么Boost没能看到那里的东西(并解析了!)以及如何解决这个问题?我查看了这个网站和文档,并不知道发现了哪里出错。

这是我的调用(在调用中删除了一堆不相关的部分:InstanceofJSON.getData(&#34; assetType&#34;);

0 个答案:

没有答案