Czy ktoś zna stabilne rozwiązanie w C++ (biblioteka, fragment kodu itp.), Który konwertuje komunikaty protobuf do/z JSON?C++ Protobuf do/z konwersji JSON
Odpowiedz
Wykonałem implementację bootstrap parsera JSON dla typów generowanych protobuf, używając mechanizmu odbicia i dostosowując przeanalizowany przeze mnie parsowanie dla generowanych typów CORBA IDL.
Można go znaleźć na http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip
W ten sposób dla każdej wiadomości Protobuf zdefiniowane, będzie w stanie analizować swoje instancje, wykonując:
Foo foo;
const std::string json_foo = "{\"text\": \"Hello world\"}";
protobuf2json::json::parse(foo, json_foo);
To tylko wstępny realizacji, a to po prostu obsługuj pola ciągów, ale łatwo jest zaimplementować wszystkie rodzaje pól.
pb2json to kolejna biblioteka C++, która może to zrobić.
Ten jest lepszy IMO: https://github.com/shramov/json2pb
robi konwersję w obu kierunkach i obsługuje rozszerzenia
Fajnie, dziękuję! –
pbjson jest jeszcze jeden, który zbudowano na rapidjson, może szybciej.
- 1. Jak przekonwertować z Json do Protobuf?
- 2. csv do konwersji json z pytonem
- 3. Narzędzie online do konwersji formatu JSON na obiekt C#
- 4. Zmiany zachowania operatorów konwersji konwersji C++ 11 i C++ 98?
- 5. C++ przeciążanie operatorów konwersji
- 6. C++ typ konwersji problem
- 7. Operatory konwersji w C++
- 8. Integer konwersji w C#
- 9. Zespoły Google Protobuf 3.0.0 dla C#
- 10. Protobuf C# Java deserializacji wielu wiadomości
- 11. Otwarta usługa protobuf
- 12. Implementacja Java konwersji JSON na XML
- 13. XML do konwersji JSON w iOS
- 14. Gson do konwersji json z dwoma DateFormat
- 15. Najlepsza architektura do konwersji JSON na SQL?
- 16. Jaka jest oczekiwana serializacja JSON pola 'oneof' protobuf?
- 17. golang protobuf remove tag omitempty z wygenerowanych znaczników json
- 18. Java: JSON -> Protobuf i konwersja z powrotem
- 19. C++ char ** do char ** konwersji
- 20. Unix konwersji czasu w C#
- 21. Reguły konwersji liczb całkowitych C++
- 22. Czy istnieje sposób definiowania alternatywnych funkcji konwersji (z/do interfejsów) w klasie surogatu protobuf-net
- 23. Czy komunikaty protobuf są kompatybilne z różnymi wersjami protobuf
- 24. protobuf z dziedziczeniem?
- 25. Rozszerzanie wiadomości Protobuf
- 26. Asynchroniczna serializacja protobuf
- 27. Google protobuf w Linuksie
- 28. Trudność przy korzystaniu z Protobuf 3.2 w C++
- 29. Wyjątek pierwszej szansy typu "Newtonsoft.Json.JsonReaderException" wystąpił podczas konwersji części json na obiekt C#
- 30. nawrócony json do C# listy obiektów
Wiadomości typu protobuf * same w sobie * nie mają wystarczających informacji; Po prostu deserializować do modelu obiektowego (protobuf) i serializować (twój wybór silnika json), że ... Nie używam C++, więc nie znam dokładnych opcji dostępnych tam (to jest bryza z protobuf-net, ale: inna platforma) –
Dziękuję bardzo za pomysł, Marc. Z pewnością zaoszczędziłoby to dużo czasu. Rozważam również wypróbowanie mechanizmu odbicia protobuf. Mam nadzieję, że jedno z podejść zadziała :) –
Myślę, że używanie mechanizmu odbicia protobuf jest dobrym podejściem do stworzenia generycznego serializatora/parsera JSON z JSON do generowanych typów protobuf. Zrobiłem coś takiego, ale do generowanych przez CORBA IDL typów w http://code.google.com/p/corbasim/ –