C++ 如何获得一个;节点";用Rapidjson解析文件?

C++ 如何获得一个;节点";用Rapidjson解析文件?,c++,rapidjson,C++,Rapidjson,我正在使用Rapidjson从文件中检索数据,我想使用该文件数据在游戏中创建实体。因此,我的文件定义了某个实体是什么(在本例中,是要创建的每个ship参数和组件)。文件如下所示(对于一艘名为无畏号的飞船): 我想要的是将“无畏”作为一个对象放入一个变量中,这样我就可以继续查询这个变量。类似于使用Rapidxml解析XML时所做的操作: xml_document<> doc; doc.parse<0>((char*)buffer.ToCString()); xml_node

我正在使用
Rapidjson
从文件中检索数据,我想使用该文件数据在游戏中创建实体。因此,我的文件定义了某个实体是什么(在本例中,是要创建的每个ship参数和组件)。文件如下所示(对于一艘名为无畏号的飞船):

我想要的是将“无畏”作为一个对象放入一个变量中,这样我就可以继续查询这个变量。类似于使用Rapidxml解析XML时所做的操作:

xml_document<> doc;
doc.parse<0>((char*)buffer.ToCString());
xml_node<>* rootNode = doc.first_node();

xml_node<>* innerNode = rootNode->first_node("x");
我尝试过用这种方式创建一个对象,但我找不到应该在模板中放置什么,我甚至不知道这个
GenericObject
是否是我需要的:

rapidjson::GenericObject<false, typename ValueT> dreadnought = m_doc["dreadnought"].GetObject();
rapidjson::GenericObject无畏=m_doc[“无畏”].GetObject();

提前谢谢。

好吧,我随便找到了一些暂时可以用的东西,不过我还是要检查一下是否足够满足我的需要

const rapidjson::Value &dreadnought = m_doc["dreadnought"];

for (rapidjson::Value::ConstMemberIterator itr = dreadnought.MemberBegin();
itr != dreadnought.MemberEnd(); ++itr) {
    std::cout << "name : " << itr->name.GetString() << std::endl;
}

这就是我想要的。

这是在对象中迭代键值对的方法。
rapidjson::GenericObject<false, typename ValueT> dreadnought = m_doc["dreadnought"].GetObject();
const rapidjson::Value &dreadnought = m_doc["dreadnought"];

for (rapidjson::Value::ConstMemberIterator itr = dreadnought.MemberBegin();
itr != dreadnought.MemberEnd(); ++itr) {
    std::cout << "name : " << itr->name.GetString() << std::endl;
}
name : parameters
name : components