Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中将Clojure脚本解析为JSON_Javascript_Json_Clojure_Clojurescript - Fatal编程技术网

在Javascript中将Clojure脚本解析为JSON

在Javascript中将Clojure脚本解析为JSON,javascript,json,clojure,clojurescript,Javascript,Json,Clojure,Clojurescript,我有一个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}] 我希望上面的clojure数据采用json格式。从clojure方面来说,我可以用柴郡。但是我想在客户端用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}]
我希望上面的clojure数据采用json格式。从clojure方面来说,我可以用柴郡。但是我想在客户端用javascript来实现它,如图所示,下面应该可以做到:

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.\uuuuuuu或其他js JSON库提供的任何操作

例如:

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解析器:。

那么在client/js上,您的数据/输入是字符串吗?i、 e.
“[{:dt[2017 6 30],:现金流431782}{:dt[2018…
想解析吗?@birdspider是的,你想要它作为cljs数据还是显式作为json?@birdspider我想把这个cljs显式解析为json。有库吗?嘿,我真的很感谢你的即时响应。但是你是从clojure方面做的。我想在客户端像javascript一样做这些。@sufiyansari,这是c客户端。
cljs
是clojurescript。不,这都是clojurescript。正如你所问的,它有一个clojurescript标记-我假设你在客户端上有clojurescriptside@SufiyanAnsari为即使是微不足道的语法编写可靠的解析器也不是一个“链接”“…甚至是SO问题的范围。我的意思是你必须从头开始。只需在客户端使用clojurescript。或在服务器上序列化为JSON。@Sufiyanasari我在google上花了4秒钟,找到了一个js/edn解析器-祝你好运:)