私はRapidjson
を使用してファイルからデータを取得しています。そのファイルデータを使用してゲームのエンティティを作成したいとします。したがって、私のファイルには、特定のエンティティ(この場合、各船のパラメータと作成されるコンポーネント)の定義があります。 (ドレッドノートと呼ばれる単一の船のために)、以下のようなファイルが見えます:Rapidjsonでファイルを解析する「ノード」を取得するにはどうすればよいですか?
{
"dreadnought" : {
"parameters": {
"image": "data/dreadnought/dreadnought_ship.png",
"linearSpeed" : 10,
"angularSpeed" : 20,
"energy" : 20,
"hitpoints" : 50
},
"components" : {
"primaryWeapon" : {
"name" : "fusionBlaster",
"energyConsumed" : 2,
"cooldown" : 5
},
"secondaryWeapon" : {
"name" : "laserBots",
"energyConsumed" : 2,
"cooldown" : 5
},
"ai" : {
"name" : "dreadnoughtAI"
}
}
}
}
私が欲しいものは、そう、私は、この変数の上に照会しておくことができ、変数にオブジェクトとして「ドレッドノート」を取得することです。 Rapidxml
でXMLを解析するとき、あなたは何をすべきかに似た何かが:
xml_document<> doc;
doc.parse<0>((char*)buffer.ToCString());
xml_node<>* rootNode = doc.first_node();
xml_node<>* innerNode = rootNode->first_node("x");
私は何を得ることができないと、そのinnerNode
です。私は、オブジェクトをこのように作成しようとしましたが、私は、私は、テンプレート内に置く必要があるものを見つけることができず、このGenericObject
は何私の場合は私も知らない
rapidjson::Object dreadnought;
dreadnought.HasMember("parameters");
...
:私のような何かをしたいと思います必要:
rapidjson::GenericObject<false, typename ValueT> dreadnought = m_doc["dreadnought"].GetObject();
ありがとうございます。
これは、オブジェクト内のキーと値のペアを反復する方法です。 –