Using jackson for example, to transform an in memory datastructure (objects) to another (string with json) , and other CPU bound operations like it, are in general not something you’d call blocking (even if it does not return until it is complete). Transforming it like that is fine. You could also use the akka-http-jackson marshalling module (https://doc.akka.io/docs/akka-http/current/common/json-support.html) but I’m afraid the documentation both for Java and using the API client side is somewhat lacking.
When blocking calls would become problematic is if that operation was fetching the source data from disk or over network, in those cases you’d rather want an async and possibly streaming solution than to block the thread until all data is read.