Кто-нибудь знаком со стабильным С++-решением (библиотека, фрагмент кода и т.д.), который преобразует сообщения protobuf в/из JSON?
С++ Protobuf в/из конверсии JSON
Ответ 1
Это лучше ИМО: https://github.com/shramov/json2pb
он выполняет преобразование в обоих направлениях и обрабатывает расширения
Ответ 2
Я сделал загрузочную реализацию парсера JSON для генерируемых типов protobuf, используя механизм его отражения и адаптировав анализ, который я сделал ранее для сгенерированных типов CORBA IDL.
Вы можете найти его на http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip
Таким образом, для каждого сообщения, определенного для protobuf, вы сможете проанализировать его экземпляры, выполнив следующие действия:
Foo foo;
const std::string json_foo = "{\"text\": \"Hello world\"}";
protobuf2json::json::parse(foo, json_foo);
Это просто первоначальная реализация, и она просто поддерживает строковые поля, но легко реализует все типы полей.
Ответ 3
pbjson - это еще один, который построен на quickjson, возможно, быстрее.
Ответ 4
pb2json - это еще одна библиотека С++, которая может это сделать.