【发布时间】:2020-11-05 18:32:25
【问题描述】:
我认为这是一个简单的问题,但作为 Clojure 的初学者,我想在 Clojure 中将简单的 JSON 转换为 EDN。
我的 JSON:
{
"Data": [
{
"Metadata": {
"Series": "1/2"
},
"Hybrid": {
"Foo": 76308,
"Bar": "76308",
"Cat": "Foo123"
}
}
],
"Footer": {
"Count": 3,
"Age": 0
}
}
因此,如果我们假设 data 是上面的 json,我尝试使用 Cheshire 将其转换为 EDN,如下所示:
(log/info "data" (cheshire.core/parse-string {(data) true}))
但是,每当我运行这段代码时,我都会收到错误消息:
ERROR compojure.api.exception - clojure.lang.PersistentArrayMap cannot be cast to java.lang.String
我想我得到这个是因为我的 JSON 不是字符串,但不确定我是否首先需要将其转换为字符串,然后 然后 转换为 EDN - 或者我是否有办法可以直接从 JSON 转到 EDN 吗?
提前感谢您的帮助
【问题讨论】:
-
如果您说“数据”是上面的 JSON,那么您很可能是指字符串。或者,如果不是,您指的是已经反序列化的数据 - 无论如何,您很可能不想调用数据 - clojure 中的括号绝不是为了好玩。使用数据的结果然后作为地图的关键看起来也很奇怪。
标签: json clojure type-conversion edn