2017-09-08 1 views
1

Ich habe eine Clojure-Daten in Form von Clojure-Format.Clojure-Skript zu JSON in Javascript analysieren

[{:dt [2017 6 30], :cashflow 431782} {:dt [2018 6 30], :cashflow 452271} {:dt [2019 6 30], :cashflow 473785} {:dt [2020 6 30], :cashflow 496374}] 

Ich möchte die oben genannten clojure Daten in der Form JSON. Von clojure Seite kann ich Cheshire immer benutzen. Aber ich möchte es auf der lient Seite in Javascript tto tun

+0

so auf client/js würden Sie Ihre Daten/Eingabe als String haben? dh '" [{: dt [2017 6 30],: cashflow 431782} {: dt [2018 ... 'und wollen das analysieren? – birdspider

+0

@birdspider ja –

+0

und Sie wollen es als cljs Daten oder explizit als json? – birdspider

Antwort

2

dargestellt Wie in dieser question (cljs.reader/read-string) und this (clj->js) die folgenden sollte es tun:

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}] 

von hier auf Sie tun können, was auch immer JSON .___ oder andere js-json lib bietet

zum Beispiel:

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}]" 
+0

Hey ich schätze wirklich Ihre sofortige Antwort., aber dies tun Sie von Clojure Seite. Ich möchte es auf Client-Seite wie in Javascript zu tun. –

+0

@SufiyanAnsari Das ist * Clientseite. 'Cljs' ist Clojurescript. –

+0

Nein, das ist alles Clojurescript. Da Sie Frage hat ein Clojurescript-Tag - Ich nahm an, Sie haben Clojurescript auf der Clientseite – birdspider