Различать типы int и uint в jsoncpp - PullRequest
0 голосов
/ 25 апреля 2019

Я бы хотел проанализировать некоторые json данные после их чтения с помощью jsoncpp, который различает типы данных int и uint.

Значение этих типов мне ясно, но когда я читаю данные типа value: 7, jsoncpp распознает это как int. Конечно, value также может быть отрицательным в другой ситуации, но если jsoncpp знает только текущую ситуацию, почему он не анализирует value как uint?

Действительные jsoncpp типы перечислены здесь . Я проверяю тип как это:

switch(root->type()) {
    case Json::intValue:    serializeInt(root->asInt(), key);       break;
    case Json::uintValue:   serializeUInt(root->asUInt(), key);     break;

Выполнен только случай int.

Итак, мой вопрос в основном состоит в том, как я могу выразить в json, что значение равно unsigned, чтобы jsoncpp анализировало его следующим образом?

1 Ответ

2 голосов
/ 25 апреля 2019

jsoncpp использует unsigned int, когда значение не помещается в int.

Вы можете попробовать со значением типа INT_MAX + 1.

...