4

我正在使用 Json-Spirit 库,但是我不确定如何从对象中读取值,而无需遍历每个名​​称-值对。

如果我有这样的对象:

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

例如,如何width按名称访问值?

4

2 回答 2

4

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

json_spirit 下载中的项目之一是 json_map_demo。这将帮助您更好地理解它。

于 2011-03-07T11:03:46.243 回答
3

这个有可能。

下面的示例代码。

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();
于 2012-11-18T15:28:16.537 回答