2011-08-10 3 views
16

protobuf 메시지를 JSON으로 /로부터 변환하는 안정적인 C++ 솔루션 (라이브러리, 코드 조각 등)에 익숙한 사람이 있습니까?C++ Prototype to JSON conversion

+1

protobuf messages * 그 자체만으로는 충분한 정보가 없습니다. 난 그냥 객체 모델 (protobuf)로 deserialize, serialize (json 엔진 선택) ... 나는 C++을 사용하지 않기 때문에 정확한 옵션을 사용할 수 있는지 모르겠다. protobuf-net과 함께, 그러나 : 다른 플랫폼) –

+1

대단히 감사합니다, Marc. 확실히 많은 시간을 절약 할 수 있습니다. protobuf의 반사 메커니즘을 시도하는 것도 고려 중입니다. 다행히도 접근법 중 하나가 작동합니다 :) –

+1

protobuf의 반사 메커니즘을 사용하면 JSON에서 일반 유형의 생성자를 JSON에서 생성 된 유형으로 만드는 훌륭한 접근 방식이라고 생각합니다. 이런 식으로 만들었지 만 CORBA IDL에서 생성 된 유형은 http://code.google.com/p/corbasim/ –

답변

3

protobuf 생성 된 유형에 대한 JSON 구문 분석기의 부트 스트랩 구현을 작성했습니다. 반사 메커니즘을 사용하고 이전에 CORBA IDL 생성 유형에 대해 작성한 구문을 적용했습니다.

당신은 각 protobuf 정의 메시지에 대해이 방법에 의해 http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip

에서 찾을 수 있습니다, 당신은 수행하여 인스턴스를 구문 분석 할 수있을 것입니다 :

Foo foo; 

const std::string json_foo = "{\"text\": \"Hello world\"}"; 

protobuf2json::json::parse(foo, json_foo); 

그것은 그냥 초기 구현 및 단지 문자열 필드를 지원하지만 모든 종류의 필드를 쉽게 구현할 수 있습니다.

1

pb2json이 작업을 수행 할 수있는 또 다른 C++ 라이브러리입니다.

3

pbjson을 처리 어쩌면 더 빨리, rapidjson을 기반으로 또 다른 하나입니다.