2009-07-09 10 views
14

메시지 직렬화에 Protocol Buffers을 사용하려고합니다.프로토콜 버퍼를 사용하여 <String, Object> Map을 어떻게 인코딩합니까?

내 메시지 형식에는 Map < String, Object> entries ...가 포함되어야합니다. 그러나 .proto 정의는 어떻게 작성합니까?

내가 아는 한, 프로토콜 버퍼에는 빌드 인 맵 유형이 없습니다. 반복 필드를 사용하여 그 주위를 모델링 할 수 있습니다. 하지만 내가 가진 큰 문제는 모든 유형을 정의해야한다는 것입니다. 내 메시지가 융통성있게되기를 원하기 때문에 형식을 지정할 수 없습니다.

아이디어가 있으십니까?

+0

이 : 지금 'proto3은'지도 <,>을 가지고 나타납니다'구문 : https://developers.google.com/protocol-buffers/docs/proto3#maps –

답변

10

저는 키와 값 (값이 될 수있는 유형 당 하나의 값 필드)이있는 튜플을 모델링합니다. 그런 다음 해당 튜플 유형의 반복 목록을 가지고 있습니다. 코드 자체로지도를 작성해야합니다.

유형을 지정할 수 없다고 할 때 - 어떤 종류의 유형입니까? 튜플에 각 유형의 선택적 필드가있는 경우 모든 기본 요소를 처리 할 수 ​​있습니다. 메시지를 바이트 문자열로 직렬화하여 메시지를 매핑 할 수 있습니다.

"구조적이지 않은"수준의 소리가 들리지만 PB에는 적합하지 않을 수 있습니다. 그것은 가치가 무엇인지에 대한

+1

합리적인 소리 ...하지만 난 당신을 생각 맞습니다 : PB가 내 문제에 대해 적합하지 않은 것처럼 보입니다 – arturh

+2

@artuh - 결국 문제에 대해 무엇을 사용 했습니까? – ekeren

+0

그래서 ... 어떤 아이디어? –