Protobuf 확장에 대한 JSON 필드 이름 사용자 정의
Protobuf 확장은 JSON으로 직렬화될 때 기본적으로 대괄호와 접두사가 포함된 필드 이름으로 설정됩니다. 확장의 상위 메시지를 나타냅니다. 보다 간결하거나 의미상 의미 있는 JSON 필드 이름을 선호하는 경우 이는 불편할 수 있습니다.
배경
Protobuf의 jsonpb 패키지는 protobuf 메시지에서 JSON을 생성합니다. JSON 필드 이름은 주로 메시지 필드 이름에서 파생됩니다. 그러나 확장의 경우 "[message.extension_message_name]"이라는 특수 형식이 사용됩니다. 이는 여러 확장명이 메시지에 적용될 때 필드 이름 충돌을 방지하기 위해 설계되었습니다.
해결책: json_name 필드 옵션 사용
Protobuf 언어 가이드는 다음 문제에 대한 해결 방법을 제공합니다. 확장을 위한 JSON 필드 이름 사용자 정의: json_name 필드 옵션. 이 옵션으로 확장 필드에 주석을 추가하면 원하는 JSON 필드 이름을 지정할 수 있습니다.
예:
message TestMessage { extensions 1 to 10; extend TestMessage { optional string my_extension_field = 1 [json_name="my_custom_field_name"]; } }
이 예에서 확장 필드 my_extension_field는 다음과 같이 JSON으로 직렬화됩니다. my_custom_field_name.
사용 시 이점 json_name
위 내용은 Protobuf 확장에 대한 JSON 필드 이름을 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!