How do I create a json in clojurescript

那年仲夏 提交于 2019-12-03 04:43:44

Just for the sake of people looking for something similar.

The ClojureScript core now contains a clj->js function.

Stephen Olsen

I found a function here

(defn clj->js
  "Recursively transforms ClojureScript maps into Javascript objects,
   other ClojureScript colls into JavaScript arrays, and ClojureScript
   keywords into JavaScript strings.

   Borrowed and updated from mmcgrana."
  [x]
  (cond
    (string? x) x
    (keyword? x) (name x)
    (map? x) (.-strobj (reduce (fn [m [k v]]
               (assoc m (clj->js k) (clj->js v))) {} x))
    (coll? x) (apply array (map clj->js x))
    :else x))

Does exactly what I needed. There is also the inverse function, namely js->clj in ClojureScript core.

This works for me:

(defn clj->json
  [ds]
  (.stringify js/JSON (clj->js ds)))

usage:

(let [json (clj->json data-structure)]
  ;; do something with json
  )
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!