Clojure cljs中的漂亮打印
我正试图在浏览器控制台上漂亮地打印clojurescript中的JSON 我发现了以下链接- 上面的链接提供了以下js-Clojure cljs中的漂亮打印,clojure,clojurescript,Clojure,Clojurescript,我正试图在浏览器控制台上漂亮地打印clojurescript中的JSON 我发现了以下链接- 上面的链接提供了以下js-JSON.stringify(obj,未定义,2) 以下在cljs中的翻译不起作用(.stringify js/JSON obj undefined 2) 在cljs中有没有适合漂亮打印的原生方式 你知道为什么上面的cljs表达式不起作用吗 更新:ClojureScript现在有一个完整的clojure.pprint端口,格式为cljs.pprint 还有一个范围更窄,速度可能
JSON.stringify(obj,未定义,2)
以下在cljs中的翻译不起作用(.stringify js/JSON obj undefined 2)
更新:ClojureScript现在有一个完整的clojure.pprint端口,格式为cljs.pprint
还有一个范围更窄,速度可能更快。事实上,需要有人移植
clojure.pprint
,这似乎正在进行中
cljs.user> (.stringify js/JSON (clj->js {:foo 42}) nil 2)
"{\n \"foo\": 42\n}"
cljs.user> (pr-str {:foo 42})
"{:foo 42}"
同时,如果您在NodeJS上运行,我将使用npm中的prettyjson
(ns foo (:require [cljs.nodejs :as nodejs]
[cljs.core :refer [clj->js]]))
(nodejs/enable-util-print!)
(def render (.-render (nodejs/require "prettyjson")))
(defn pp [value] (println (render (clj->js value))))
然后以彩色YAML打印值:
这只是一个破解,但至少是可读的。以下内容将Clojure映射(
对象
)转换为JSON,并在控制台中将其作为一个对象打印,从而可以利用浏览器检查JSON功能:
(.dir js/console(clj->js对象))
编辑:虽然漂亮的打印非常好,但在开发人员控制台中,我仍然喜欢以树的形式浏览数据结构,并且现在经常使用。它是一个库,为您提供了一个交互式数据树,可以将其扩展为普通的js对象,但对于香草clojure,它不必转换为js,这意味着:keywords
,{:ma“ps”}
以及clj家族的其他成员
目前,它要求您向项目中添加一个leiningen依赖项和一些代码,并使用Chrome Canary。
clojure.pprint
已通过发行版0.0-3255
移植到ClojureScript。它被称为cljs.pprint
当您使用(.stringify js/JSON obj undefined 2)
?什么是obj
?如果是clojure映射,则需要先将其转换为js对象。ClojureScript是否理解未定义的?ClojureScript有两个漂亮的打印机可用:
ClojureScript:foo> (pp {:a 123 :foo ["baz" 42]})
a: 123
foo:
- baz
- 42