2015-04-24 4 views
1

У меня есть внешняя библиотека, которая принимает параметр Json::Value. Затем он выведет строку, содержащую структуру JSON, с моим переданным Json::Value где-то в этой структуре.JsonCpp: Как получить пустой объект в Json :: Value?

Я пытаюсь положить пустой объект {} в том, что Json::Value с JsonCpp.

В конечном счете, я пытаюсь разобрать этот пустой объект JSON из std::string, который содержит "{}", и мне это нужно в Json::Value.

Когда я объявляю Json::Value и ничего не делать с ним и передать его в моей библиотеке, я получаю NULL вместо {} ...

+0

Где именно он терпит неудачу (обычный синтаксический анализ json)? Вы не указали свой результат. –

+0

@ Alex M. Обновлен мой вопрос, может быть, это поможет. Ничего не получается, мне просто интересно, как загрузить мою строку (содержащую пустой объект '{}') в Json :: Value ... – AlexV

ответ

3

Пример:

Json::Value root; 
Json::Reader reader; 
reader.parse("{}", root); 
assert(root != Json::nullValue); 
std::string someStr = Json::FastWriter().write(root); 
assert(someStr == "{}\n"); 

Все утверждения проходят, так анализируемый объект не имеет нулевого значения, и когда вы записываете его обратно в строку, вы получаете свой пустой объект "{}" назад. Это не сработало для вас?

+0

Перед тем, как вы отправили свой ответ, я нашел [эту статью] (http: // garajeando .blogspot.ca/2011/06/we-are-use-json-javascript-object.html) Что примерно такое же ,, Наконец, это библиотека, которую я называю, кто конвертирует пустой JSON '{}' в 'NULL' , Принимая в качестве ответа, потому что это то, что я хотел знать оригинально. Благодаря! – AlexV

0

Может кому-то помочь: В текущей версии. что я использую - 1.8.2, вы можете получить пустой объект, например:

Json::Value root; 
root = Json::objectValue; 

 Смежные вопросы

  • Нет связанных вопросов^_^