JSON_Spirit: отображение value.type () обратно на тип? - PullRequest
0 голосов
/ 22 апреля 2010

Вы можете отобразить тип значения следующим образом:

cout << val.type() << end;

и выведите номер.

Как мне сопоставить этот номер с фактическим типом?

кроме заглядывания в заголовочный файл, конечно, который раскрывает все ...

enum Value_type {
    obj_type,array_type,str_type,bool_type,int_type,real_type,null_type
};

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

Значение val; читать (есть, val); Объект o = val.get_obj ();

Затем создайте пару, предполагая, что это тип 0. Пара пара = o [1];

где 1 - повторное значение. Это заняло у меня целую вечность, поэтому я пытаюсь сэкономить время тех, кто хочет это выяснить позже. используйте sizeof (o) / sizeof (int) для итерации вместе с ++ i вместо i ++.

0 голосов
/ 22 апреля 2010

Нет, это похоже на канонический путь:

    switch(v.type()) {
        case obj_type:    pp_obj(v, lev+1);   break;
        case array_type:  pp_array(v, lev+1); break;
        case str_type:    pp<string>(v, lev+1);   break;
        case bool_type:   pp<bool>(v, lev+1);  break;
        case int_type:    pp<int>(v, lev+1);   break;
        case real_type:   pp<double>(v, lev+1);  break;
        case null_type:   pp_null(v, lev+1);  break;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...