2017-12-08 7 views
0

좋아요, protobuf 형식의 데이터 파일이 있습니다. 또한 파일의 스키마를 설명하는 .proto 파일도 있습니다.Protobuf data + .proto -> JSON

파일에서 알려진 메시지를 추출 할 수있는 풍부한 라이브러리를 발견했습니다. 얼마나 좋은지.

그러나 실제로 파일의 구조를 알지 못합니다. 파일에 다른 최상위 "메시지"가있을 수 있으며 실제로하고 싶은 것은 파일을 검사하여 그 안에 들어있는 내용을 덤프하는 것입니다. 이 요청이 너무 많이

:

내가 뭔가를 할 수있는 명령을 가지고 싶어요? 구글은 확실한 대답을하지 못하고있다. 어쩌면 나는 아직 얻지 못하는 protobufs에 대해 뭔가 미묘한 것이있을 것이다.

아이디어가 있으십니까?

답변

0

프로토콜 버퍼 Google 그룹의 유용한 사람들에게 감사드립니다.

대답은 "죄송합니다."입니다.

음, 닫기. 문제는 데이터 파일에 "루트"메시지가 무엇인지를 아는 것이 사용자의 몫입니다. 내 경우에는 분명하지 않았으므로 파일의 덤프가 루트를 누설하기를 바랬습니다. 파일 자체는 필드 또는 메시지가 무엇인지 알지 못하기 때문에 올바른 .proto 파일이 있으면 추출 할 수있는 데이터 만 있습니다.

필자의 경우 root가 무엇인지 의심 스럽기 때문에 모든 필드가 파일에 무엇인지 알리는 메시지를 찾을 때까지 시행 착오를 쳤습니다.

루트 메시지가 .proto 파일에 표시된 것이 좋을 것입니다.이 경우 변환을 수행 할 도구가 이미 존재할 것입니다.

이 정보가 도움이되기를 바랍니다.

0

여기에 제기 된 문제를 해결하는 단계가 있습니다. 다음은이 도구를 실행하는 명령 행 예제입니다.

https://github.com/rohitsaboo/proto2json

$ ./proto2json.sh --schema=test/test.proto \ 
    --root=Recording --in=test/test.pb --out=out.json 

은 현재 도구는 다른 파일에서 PROTOS에 의존하지 않는 프로토콜 버퍼 스키마를 지원합니다. 그러나 "dependency_schemas"를 지원하도록 확장 할 수 있어야합니다.