gpt4 book ai didi

clojurescript - 将 ClojureScript edn 序列化为文本文件(如 json)?

转载 作者:行者123 更新时间:2023-12-01 11:27:00 25 4
gpt4 key购买 nike

我在 ClojureScript 中工作,想以文本文件的形式序列化大量 EDN 数据结构(特别是:大 map )(与 JS 对象存储为 .json< 的方式相同)/ 文件)。性能问题不是问题。

这是否可能,如果可能,是否考虑了一种标准/最佳实践方法来做到这一点?

最佳答案

是的。使用 pr-strclojure.pprint/pprint 编写 EDN 并使用 clojure.edn/read-string 摄取 EDN。

在 ClojureScript 中,在从浏览器访问文件系统时,您可能面临与 Javascript 相同的挑战。例如,从浏览器保存文件可能有点棘手:

(defn save-file [filename t s]
(if js/Blob
(let [b (js/Blob. #js [s] #js {:type t})]
(if js/window.navigator.msSaveBlob
(js/window.navigator.msSaveBlob b filename)
(let [link (js/document.createElement "a")]
(aset link "download" filename)
(if js/window.webkitURL
(aset link "href" (js/window.webkitURL.createObjectURL b))
(do
(aset link "href" (js/window.URL.createObjectURL b))
(aset link "onclick" (fn destroy-clicked [e]
(.removeChild (.-body js/document) (.-target e))))
(aset link "style" "display" "none")
(.appendChild (.-body js/document) link)))
(.click link))))
(log/error "Browser does not support Blob")))

所以这取决于您如何访问文件的上下文,但只要您可以获取/输入字符串,它就像 pr-str 和 edn/read-string 一样简单。

关于clojurescript - 将 ClojureScript edn 序列化为文本文件(如 json)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36511375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com