tutorial react google closure clojurescript

react - ¿Cómo creo un json en clojurescript



clojurescript tutorial (3)

Encontré una función 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))

Hace exactamente lo que necesitaba. También existe la función inversa, a saber, js->clj en el núcleo de ClojureScript.

Tengo algunas claves que quiero interoperar con algunas bibliotecas de JavaScript. En mi código clojurescript hago un análisis y creo una lista de mapas. algo como

[{:prop1 "value1" :prop2 "value2"}, {:prop1 "something else" :prop2 "etc"}...]

Necesito pasar esto a un javascript funciona como

[{prop1: "value1", prop2: "value2}, {..} ...]

No estoy seguro de cómo devolver un objeto javascript desde mi función clojurescript. ¿Hay una manera de serializar mapas y listas anidadas a objetos javascript? ¿O una forma de crear un nuevo objeto javascript y luego establecer propiedades en él?


Esto funciona para mí:

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

uso:

(let [json (clj->json data-structure)] ;; do something with json )


Sólo por el bien de las personas que buscan algo similar.

El núcleo de ClojureScript ahora contiene una función clj->js .