C++ 从json精神中获得价值

C++ 从json精神中获得价值,c++,json-spirit,C++,Json Spirit,我使用的是Json Spirit库,但是我不确定如何从对象中读取值,而不迭代每个名称-值对 如果我的目标是: { "boids": { "width": 10, "count": 5, "maxSpeedMin": 2, "maxSpeedMax": 80, "maxForceMin": 0.5, "maxForceMax": 40 } } 例如,如何通过名称访问宽度值?添加

我使用的是Json Spirit库,但是我不确定如何从对象中读取值,而不迭代每个名称-值对

如果我的目标是:

{
    "boids":
    {
        "width": 10,
        "count": 5,
        "maxSpeedMin": 2,
        "maxSpeedMax": 80,
        "maxForceMin": 0.5,
        "maxForceMax": 40
    }
}
例如,如何通过名称访问
宽度
值?

添加了对std::map的支持,以便您可以查找值

json_spirit下载中的一个项目是json_map_演示。这将帮助您更好地理解它。

这是可能的

下面是一个示例代码

string test = {
"boids":
 {
   "width": 10,
   "count": 5,
   "maxSpeedMin": 2,
   "maxSpeedMax": 80,
   "maxForceMin": 0.5,
   "maxForceMax": 40
 }
}

mValue value;
if(read(test, value))
{
 mObject obj = value.get_obj();
 obj = obj.find("boids")->second.get_obj();
/*Now the obj would contain the sub object,that is 
{"width": 10,
 "count": 5,
 "maxSpeedMin": 2,
 "maxSpeedMax": 80, 
 "maxForceMin": 0.5,
 "maxForceMax": 40 
}
*/

int nWidth =  obj.find("width")->second.get_int();
“obj=obj.find(“boids”)->second.get_obj();”在运行时给出了一个错误。您需要定义一个新的mObject。