将 Clojure 脚本解析为 Javascript 中的 JSON
Parse Clojure Script to JSON in Javascript
我有一个 clojure 格式的 clojure 数据。
[{:dt [2017 6 30], :cashflow 431782} {:dt [2018 6 30], :cashflow 452271} {:dt [2019 6 30], :cashflow 473785} {:dt [2020 6 30], :cashflow 496374}]
我想要 json 形式的上述 clojure 数据。在 clojure 方面,我总是可以使用 Cheshire。但我想在 javascript
中在客户端进行
如本 and this (clj->js
) 所示,以下应该可以解决问题:
cljs.user=> (def data-as-str
"[{:dt [2017 6 30], :cashflow 431782}
{:dt [2018 6 30], :cashflow 452271}
{:dt [2019 6 30], :cashflow 473785}
{:dt [2020 6 30], :cashflow 496374}]")
#'cljs.user/data-as-str
cljs.user=> (cljs.reader/read-string data-as-str)
[{:dt [2017 6 30], :cashflow 431782}
{:dt [2018 6 30], :cashflow 452271}
{:dt [2019 6 30], :cashflow 473785}
{:dt [2020 6 30], :cashflow 496374}]
; i have little experience in cljs but this should deliver
; a plain old js object
cljs.user=> (clj->js (cljs.reader/read-string data-as-str))
#js [#js {:dt #js [2017 6 30], :cashflow 431782}
#js {:dt #js [2018 6 30], :cashflow 452271}
#js {:dt #js [2019 6 30], :cashflow 473785}
#js {:dt #js [2020 6 30], :cashflow 496374}]
从这里开始,您可以做任何 JSON.___ 或其他 js-json lib 提供的
例如:
cljs.user=> (.stringify js/JSON
(clj->js (cljs.reader/read-string data-as-str)))
"[{\"dt\":[2017,6,30],\"cashflow\":431782},{\"dt\":[2018,6,30],\"cashflow\":452271},{\"dt\":[2019,6,30],\"cashflow\":473785},{\"dt\":[2020,6,30],\"cashflow\":496374}]"
您可以使用 JavaScript 中实现的 EDN 解析器:github.com/shaunxcode/jsedn。
我有一个 clojure 格式的 clojure 数据。
[{:dt [2017 6 30], :cashflow 431782} {:dt [2018 6 30], :cashflow 452271} {:dt [2019 6 30], :cashflow 473785} {:dt [2020 6 30], :cashflow 496374}]
我想要 json 形式的上述 clojure 数据。在 clojure 方面,我总是可以使用 Cheshire。但我想在 javascript
中在客户端进行如本 clj->js
) 所示,以下应该可以解决问题:
cljs.user=> (def data-as-str
"[{:dt [2017 6 30], :cashflow 431782}
{:dt [2018 6 30], :cashflow 452271}
{:dt [2019 6 30], :cashflow 473785}
{:dt [2020 6 30], :cashflow 496374}]")
#'cljs.user/data-as-str
cljs.user=> (cljs.reader/read-string data-as-str)
[{:dt [2017 6 30], :cashflow 431782}
{:dt [2018 6 30], :cashflow 452271}
{:dt [2019 6 30], :cashflow 473785}
{:dt [2020 6 30], :cashflow 496374}]
; i have little experience in cljs but this should deliver
; a plain old js object
cljs.user=> (clj->js (cljs.reader/read-string data-as-str))
#js [#js {:dt #js [2017 6 30], :cashflow 431782}
#js {:dt #js [2018 6 30], :cashflow 452271}
#js {:dt #js [2019 6 30], :cashflow 473785}
#js {:dt #js [2020 6 30], :cashflow 496374}]
从这里开始,您可以做任何 JSON.___ 或其他 js-json lib 提供的
例如:
cljs.user=> (.stringify js/JSON
(clj->js (cljs.reader/read-string data-as-str)))
"[{\"dt\":[2017,6,30],\"cashflow\":431782},{\"dt\":[2018,6,30],\"cashflow\":452271},{\"dt\":[2019,6,30],\"cashflow\":473785},{\"dt\":[2020,6,30],\"cashflow\":496374}]"
您可以使用 JavaScript 中实现的 EDN 解析器:github.com/shaunxcode/jsedn。