JMS - это спецификация интерфейса, а не транспорт. Вам нужно обратиться к конкретной реализации, чтобы понять этот вопрос.
Я использовал ActiveMQ для передачи данных JSON и XML другим клиентам; мы использовали заголовок, помечающий тип контента, и обнаружили, что это довольно эффективно. Для связи с ActiveMQ использовались нативные библиотеки Java, Ruby и Perl (через STOMP или OpenWire).
Я также экспериментировал с RabbitMQ, снова через STOMP, и с использованием Apache Camel в сочетании с ActiveMQ для предоставления HTTP-интерфейса в очередь, автоматического соединения JSON, отправляемого через HTTP, с потребителем JMS и предоставления ответа JSON на запрос.