Protobuf 생성 JSON에서 생략 태그 제거
JSON 프록시와 함께 사용할 Protobuf 클래스를 생성할 때 다음에서 생략 태그가 나타날 수 있습니다. 생성된 구조체 이러한 태그는 JSON 마샬링 중에 빈 필드를 억제하는데, 이는 특정 시나리오에서 바람직하지 않을 수 있습니다.
생성된 구조체에서 생략 태그를 제거하려면:
grpc-gateway 사용
grpc-gateway를 사용하는 경우 다음을 지정하여 생략 동작을 비활성화할 수 있습니다. Servemux를 생성할 때 다음 옵션을 사용하세요.
gwmux := runtime.NewServeMux(runtime.WithMarshalerOption(runtime.MIMEWildcard, &runtime.JSONPb{OrigName: true, EmitDefaults: true}))
grpc-gateway 외부
grpc-gateway 외부에서 생략 동작 없이 Protobuf 메시지를 마샬링하려면 다음을 사용하세요. 표준 인코딩/json 대신 google.golang.org/protobuf/encoding/protojson 패키지 패키지:
func sendProtoMessage(resp proto.Message, w http.ResponseWriter) { w.Header().Set("Content-Type", "application/json; charset=utf-8") m := protojson.Marshaler{EmitDefaults: true} m.Marshal(w, resp) // Check for errors here }
참고:
위 내용은 Protobuf가 생성한 JSON에서 'omitempty' 태그를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!