在Clojure中,我正在使用cheshire(https://github.com/dakrone/cheshire)库的'generate-string'函数将EDN转换为JSON。
[如果我直接使用Clojure中的EDN数据调用它就可以了,例如。
(defn generate-json-string
(generate-string {:foo "bar" :baz {:eggplant [1 2 3]} :sesion nil} {:pretty true})
)
Output =>
{
"foo": "bar",
"baz": {
"eggplant": [1,2,3]
},
"sesion": null
}
但是如果我从Java调用上述函数并以Java String的形式将相同的内容传递给它,则将无法正常工作
(defn generate-json-string [content]
(generate-string content {:pretty true})
)
Output =>
"{:foo \"bar\" :baz {:eggplant [1 2 3]} :session nil}"
我该如何解决?
我能够通过使用edn / read-string函数解决此问题。
(defn generate-json-string [content]
(generate-string (edn/read-string content) {:pretty true})
)