> 백엔드 개발 > Golang > Protobuf 확장에 대한 JSON 이름을 어떻게 사용자 정의할 수 있나요?

Protobuf 확장에 대한 JSON 이름을 어떻게 사용자 정의할 수 있나요?

Patricia Arquette
풀어 주다: 2024-11-28 08:51:11
원래의
864명이 탐색했습니다.

How Can I Customize JSON Names for Protobuf Extensions?

Protobuf 확장에 대한 JSON 이름 사용자 정의

확장 메시지가 메시지에 추가되는 시나리오에서는 사용자 정의 JSON을 지정하는 것이 바람직합니다. [message.extension_message_name]의 기본 형식이 아닌 확장 메시지의 이름입니다. 이 문서에서는 이러한 요구 사항을 해결하고 해결 방법을 제공합니다.

문제에서 언급한 것처럼 Protobuf의 확장 메시지에 대한 JSON 이름은 자동으로 [desc.Name]으로 설정됩니다. 그러나 이 명명 규칙은 어떤 경우에는 적합하지 않을 수 있으며, 특히 확장 메시지가 API의 다른 곳에서 사용되고 기본 이름을 사용하면 혼란을 초래할 수 있는 경우에 그렇습니다.

이 문제를 해결하기 위한 해결책은 다음을 사용하는 것입니다. json_name 필드 옵션. Protobuf 언어 가이드에 따르면 메시지 필드 이름은 소문자 카멜 케이스로 변환되어 JSON 개체 키가 됩니다. json_name 필드 옵션을 지정하면 기본 동작을 재정의하고 사용자 지정 JSON 이름을 지정할 수 있습니다.

예를 들어 다음 Protobuf 정의를 고려하세요.

message TestMessage {
    string myField = 1 [json_name="my_special_field_name"];
}
로그인 후 복사

이 정의를 사용하면 TestMessage는 JSON으로 마샬링되며 myField는 JSON에서 my_special_field_name으로 표시됩니다. 출력,而不是默认的[TestMessage.myField].

이 해결 방법을 사용하면 개발자는 확장 메시지의 JSON 이름을 사용자 정의하여 애플리케이션의 특정 요구 사항에 더 잘 맞추고 잠재적인 혼란을 줄일 수 있습니다.

위 내용은 Protobuf 확장에 대한 JSON 이름을 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿