尽我所能来解决这个问题。在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;);