Hi Roman, This approach works for java.sql.Timestamp, which was another type for which a JSON writer wasn't defined in my case.
For org.postgresql.jdbc4.Jdbc4Array however, there's something missing, because I get: *org.postgresql.util.PSQLException: This connection has been closed.* As the person answering me on Stack Overflow suggested, it seems that the resultset should be somehow processed before the connection is closed, but I really don't know how to do given the construct I'm currently using: (json/write-str (jdbc/query *db* ["SELECT * FROM .."])) where and how could I intercept the resultset that way? Thanks. On Tuesday, October 1, 2013 12:49:10 PM UTC-4, r0man wrote: > > I think you need to implement the JSONWriter protocol for the > Jdbc4Array class, and possibly for the datatypes that are in the > array. This for example makes the json library aware of > java.util.Date classes. > > (extend-type java.util.Date > JSONWriter > (-write [date out] > (-write (str date) out))) > > Something like this (not tested): > > (extend-type org.postgresql.jdbc4.Jdbc4Array > JSONWriter > (-write [array out] > (-write (seq (.getArray array)) out))) > > Roman > > > On Tuesday, October 1, 2013 3:57:02 PM UTC+2, Christian Jauvin wrote: >> >> Hi, >> >> I asked this question on Stack Overflow yesterday: >> >> I want to jsonify the results of a query performed against a Postgres >> table containing a column of type text[], but the problem is that >> clojure.data.json.write-str doesn't seem to know how to handle PG arrays: >> >> *Exception Don't know how to write JSON of class >> org.postgresql.jdbc4.Jdbc4Array clojure.data.json/write-generic* >> >> Do I have to supply a custom handler, or is there a simpler way? >> >> >> >> http://stackoverflow.com/questions/19103870/jsonify-a-jdbc4array-in-clojure >> >> I'm asking it here in the hope of getting (maybe) a simpler solution, or >> at least one I can implement readily, because the problem I have with one >> of the suggestions I received (extending org.postgresql.jdbc4.Jdbc4Arrayto >> implement the missing function) is that I don't know how to make it work >> with my usage pattern, which is simply: >> >> (json/write-str >> (jdbc/query *db* >> ["SELECT * FROM ..."])) >> >> How do I "get the array before the connection is closed" with such a >> construct? Is there another way? >> >> -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.