4

clojure var などを格納する clojure マップから JSON オブジェクトを作成する必要があります。基本実装は、それらを見ると、この種のエラーをスローします。

java.lang.Exception: クラス clojure.lang.Var の JSON の書き方がわからない

JSON ライターの機能を拡張する方法のサンプル コードを教えてもらえますか?

ありがとう。

4

2 に答える 2

4

さて、私は答えを考え出した。それに部分的に答える別のSOの質問があります: How to map clojure code to and from JSON?

しかし、これが私のために働いたコードです:

(defn- write-json-clojure-lang-var [x #^PrintWriter out]
(.print out (json-str (str x))))

(extend clojure.lang.Var clojure.contrib.json/Write-JSON
    {:write-json write-json-clojure-lang-var})

私がやりたかったのは、参照している Var の文字列バージョンをレンダリングすることだけであることに注意してください。もちろん、他の多くのことを行うこともできます...

于 2011-09-27T12:37:28.120 に答える
0

新しいを使用している私たちのためのzippyからの回答への更新clojure.data.json。これは、更新された/新しいライブラリで機能するコードです。

(defn- write-json-clojure-lang-var [x #^PrintWriter out]
    (.print out (json-str (str x))))

(extend clojure.lang.Var clojure.data.json/JSONWriter
    {:-write write-json-clojure-lang-var})
于 2013-02-12T05:49:57.830 に答える