The simplest way to do it would probably be to wrap the output in clojure.data.json/write-str, looks pretty ugly of course and becomes useless in clojureland. I guess it really depends on what consumes the output afterwards. Maybe that should be handled case by case. How about an additional function "transform-json-str"? Comes with the new dependency of clojure.data.json, though. Looking at the source code of clojure.data.json it's not trivial to generate valid JSON manually.