¿Alguien está familiarizado con una solución estable de C++ (biblioteca, fragmento de código, etc.) que convierte mensajes protobuf en/desde JSON?C++ Protobuf a/desde la conversión JSON
Respuesta
He realizado una implementación de arranque de un analizador JSON para tipos generados por protobuf, utilizando su mecanismo de reflexión y adaptando el análisis que hice previamente para los tipos generados por CORBA IDL.
Puede encontrarlo en http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip
De esta manera para cada mensaje protobuf definido, usted será capaz de analizar sus casos haciendo:
Foo foo;
const std::string json_foo = "{\"text\": \"Hello world\"}";
protobuf2json::json::parse(foo, json_foo);
Es sólo una implementación inicial, y que sólo admite campos de cadenas, pero es fácil implementar todo tipo de campos.
pb2json es otra biblioteca C++ que puede hacer esto.
Ésta es mejor IMO: https://github.com/shramov/json2pb
lo hace la conversión en ambas direcciones y se ocupa de las extensiones
Cool, gracias! –
pbjson es otro, que se basó en rapidjson, tal vez más rápido.
- 1. jQuery AJAX JSON dataType Conversión
- 2. conversión de RSS Para JSON
- 3. Conversión de variables JSON a minúsculas en C#
- 4. Conversión Ir estructura a JSON
- 5. Conversión de texto a JSON
- 6. Pregunta de conversión de objetos JSON
- 7. La lectura de un mensaje Protobuf en C#
- 8. Cómo elegir entre protobuf-csharp-port y protobuf-net
- 9. REST y JSON - cadena de conversión a matriz JSON
- 10. Inteligente o no: Persista datos serializados (dotnet-protobuf, protobuf-net, json) en una base de datos relacional en CF
- 11. La conversión de Obj C a C#
- 12. Conversión dinámica de XML a JSON
- 13. protobuf: lea un mensaje en C++ desde C#
- 14. conversión de .NET DateTime a JSON
- 15. fecha de conversión .NET JSON con la norma ISO
- 16. Conversión de la matriz de resultados de PHP a JSON
- 17. Son mensajes protobuf compatibles en todas las versiones de protobuf
- 18. protobuf-net serializing object graph
- 19. herencia protobuf-net
- 20. -protobuf neta herencia "árbol"
- 21. serialización de protobuf asincrónica
- 22. Convenciones de nomenclatura de Protobuf
- 23. Problema de C++ en la conversión
- 24. cadena a la conversión enum en C#
- 25. Objetivo C int La conversión a flote
- 26. C# flotador a la conversión decimal
- 27. C++ int para la conversión de cadenas
- 28. cadena a la conversión DateTime en C#
- 29. La conversión a TCHAR cadena en C++
- 30. Qt + protobuf, tipos?
mensajes protobuf * por sí mismos * realmente no tienen suficiente información para eso; Me gustaría deserializarme en un modelo de objetos (protobuf), y serializar (tu elección de motor json) que ... No uso C++, así que no conozco las opciones exactas disponibles allí (es muy fácil) con protobuf-net, pero: plataforma diferente) –
Muchas gracias por la idea, Marc. Definitivamente ahorraría mucho tiempo. También estoy considerando probar el mecanismo de reflexión de protobuf. Afortunadamente, uno de los enfoques funcionará :) –
Creo que usar el mecanismo de reflexión de protobuf es un buen enfoque para hacer un serializador/programador JSON genérico desde JSON a tipos generados por protobuf. He hecho algo como esto, pero para tipos generados por CORBA IDL en http://code.google.com/p/corbasim/ –