В чем разница между clear и arrayValue в jsoncpp

Для работы с json используется библиотека jsoncpp. Ранее созданный массив объектов можно очистить с помощью clear.

Json::Value value;
...
value.clear();

Также его можно очистить arrayValue (или nullValue).

Json::Value value;
...
value = Json::arrayValue;

Вопрос: В чем разница между clear и arrayValue?


person Max ZS    schedule 12.04.2016    source источник


Ответы (2)


null, пустой массив и пустой объект — это три разные вещи в JsonCpp.

value.clear() делает следующее:

  • ноль -> ноль
  • любой массив -> пустой массив
  • любой объект -> пустой объект
  • что-нибудь еще -> выбросить std::runtime_error

value = Json:arrayValue делает следующее:

  • что угодно -> пустой массив

Таким образом, эти две конструкции семантически не эквивалентны.

person user31264    schedule 18.04.2016

Clear= Удалить все члены объекта и элементы массива.

nullvalue = Означает пустое значение.

person maxadorable    schedule 12.04.2016
comment
Принципиальная разница в чем? Могу ли я использовать ArraiValyue вместо Clear? Если нет - почему? - person Max ZS; 12.04.2016
comment
Я думаю, это не имеет значения. Это похоже на разницу между циклом while и циклом for. Оба выполняют одни и те же функции, только небольшая разница. Поиграйте с обоими. - person maxadorable; 12.04.2016