Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
Clojure cljs中的漂亮打印_Clojure_Clojurescript - Fatal编程技术网

Clojure cljs中的漂亮打印

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 还有一个范围更窄,速度可能

我正试图在浏览器控制台上漂亮地打印clojurescript中的JSON

我发现了以下链接-

上面的链接提供了以下js-
JSON.stringify(obj,未定义,2)

以下在cljs中的翻译不起作用
(.stringify js/JSON obj undefined 2)

  • 在cljs中有没有适合漂亮打印的原生方式
  • 你知道为什么上面的cljs表达式不起作用吗

  • 更新: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