@Nullable
    private static JsonNode getBodyContent(AggregatedHttpRequest request) {
        @Nullable
        final MediaType contentType = request.contentType();
        if (contentType == null || !contentType.isJson()) {
            if (request.content().isEmpty()) {
                return null;
            }
            throw new IllegalArgumentException("Missing or invalid content-type in JSON request.");
        }
        try {
            return mapper.readTree(request.contentUtf8());
        } catch (JsonProcessingException e) {
            throw new IllegalArgumentException("Failed to parse JSON request.", e);
        }
    }
Converts the HTTP request to gRPC JSON with the {@link TranscodingSpec}.
grpc/src/main/java/com/linecorp/armeria/server/grpc/HttpJsonTranscodingService.java