Получение значения от json-spirit - PullRequest
4 голосов
/ 06 марта 2011

Я использую библиотеку Json-Spirit, однако я не уверен, как читать значение из объекта, не повторяя каждую из пар имя-значение.

Если у меня есть такой объект, как:

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

Как я могу получить доступ, например, к значению width по имени?

Ответы [ 2 ]

4 голосов
/ 07 марта 2011

json_spirit добавлена ​​поддержка std :: map, чтобы вы могли искать значение.

Один из проектов в json_spirit - это json_map_demo. Это поможет вам лучше понять это.

3 голосов
/ 18 ноября 2012

Это возможно.

Пример кода ниже.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...