如何将Java字符串转换为EDN对象?

问题描述 投票:0回答:1

在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}"

我该如何解决?

clojure clojure-java-interop edn cheshire
1个回答
0
投票

我能够通过使用edn / read-string函数解决此问题。

(defn generate-json-string [content]
  (generate-string (edn/read-string content) {:pretty true})
)
© www.soinside.com 2019 - 2024. All rights reserved.