4

我需要从 clojure 映射创建 JSON 对象,这些映射存储诸如 clojure vars 之类的东西。基本实现在看到它们时会抛出这种错误:

java.lang.Exception:不知道如何编写 clojure.lang.Var 类的 JSON

谁能指出我如何扩展 JSON 编写器功能的示例代码?

谢谢。

4

2 回答 2

4

嗯,我想出了答案。还有另一个 SO 问题部分回答了它:如何将 clojure 代码映射到 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

对于我们这些使用较新的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 回答