here is an example of the Java version.
https://github.com/hamnis/json-collection/blob/master/src/test/java/net/hamnaberg/json/generator/CollectionGeneratorTest.java
I didnt think that this was so hard. The java project uses the builder pattern, which off the bat i cant remember are immutable or not.
All other non-builder types, Collection, Item etc are immutable.
There are a few translations from types to objects here.
There are no really tests for the clojure version, since i was trying to learn clojure at that time.
But that shouldn't be too hard. The clojure version is currently under a rewrite to make it a pure-clojure version.
-E