Skip to content

Instantly share code, notes, and snippets.

@lukaszkorecki
Created November 23, 2015 14:38
Show Gist options
  • Save lukaszkorecki/c719188a0a35e1855d6b to your computer and use it in GitHub Desktop.
Save lukaszkorecki/c719188a0a35e1855d6b to your computer and use it in GitHub Desktop.
Add JSONB support to yesql and automatically unserialize json/jsonb columns with cheshire
(ns foo.bar
(:require [cheshire.core :as json]
[clojure.java.jdbc :as jdbc])
(:import [org.postgresql.util PGobject]))
(defn extend-db-driver []
(extend-type org.postgresql.util.PGobject
jdbc/IResultSetReadColumn
(result-set-read-column [val rsmeta idx]
(let [colType (.getColumnTypeName rsmeta idx)]
(if (or (= colType "json")
(= colType "jsonb"))
(json/parse-string (.getValue val) true) val)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment