public static MessageMarshaller jsonMarshaller(
            List<MethodDescriptor<?, ?>> methods,
            @Nullable Consumer<MessageMarshaller.Builder> jsonMarshallerCustomizer) {
        final MessageMarshaller.Builder builder = MessageMarshaller.builder()
                                                                   .omittingInsignificantWhitespace(true)
                                                                   .ignoringUnknownFields(true);
        for (MethodDescriptor<?, ?> method : methods) {
            final Message reqPrototype = marshallerPrototype(method.getRequestMarshaller());
            final Message resPrototype = marshallerPrototype(method.getResponseMarshaller());
            if (reqPrototype != null) {
                builder.register(reqPrototype);
            }
            if (resPrototype != null) {
                builder.register(resPrototype);
            }
        }

        if (jsonMarshallerCustomizer != null) {
            jsonMarshallerCustomizer.accept(builder);
        }

        return builder.build();
    }
Returns a {@link MessageMarshaller} with the request/response {@link Message}s of all the {@code methods}
registered.
grpc/src/main/java/com/linecorp/armeria/common/grpc/GrpcJsonUtil.java