JSON elemző / generátor a Clojure adatszerkezetekhez.
fő célok:
- megfelel a JSON specifikációnak https://json.org/
 - nincs külső függőség
 
kiadások és függőségi információk
ez a projekt a fő verziósémát követi.Kisebb.Javítás, ahol az egyes összetevők relatív jelzést adnak a változás méretéről, de nem követik a szemantikai verziókat. Általában minden változás arra törekszik, hogy ne törjön meg (új nevekre való áttéréssel, nem pedig a meglévő nevek megszakításával).
a legújabb stabil kiadás 2.0.1
 CLI / deps.edn függőségi információk:
org.clojure/data.json {:mvn/version "2.0.1"}
Leiningen függőségi információk:
Maven függőségi információk:
<dependency> <groupId>org.clojure</groupId> <artifactId>data.json</artifactId> <version>2.0.1</version></dependency>
egyéb verziók:
- 
minden kiadott verzió
 - 
fejlesztési Pillanatképek
 - 
fejlesztési Pillanatkép-Tárolók
 
használat
API dokumentáció
példa használat:
(ns example (:require ))
 a JSON karakterláncok konvertálásához használja a json/write-str és json/read-str:
(json/write-str {:a 1 :b 2});;=> "{\"a\":1,\"b\":2}"(json/read-str "{\"a\":1,\"b\":2}");;=> {"a" 1, "b" 2}
vegye figyelembe, hogy ezek a műveletek nem szimmetrikusak: a Clojure datainto JSON konvertálása veszteséges.
kulcs/érték típusok konvertálása
 megadhat egy :key-fn – et a térkép kulcsok konvertálásához be-vagy kifelé menet:
(json/read-str "{\"a\":1,\"b\":2}" :key-fn keyword);;=> {:a 1, :b 2}(json/write-str {:a 1 :b 2} :key-fn #(.toUpperCase %));;=> "{\"A\":1,\"B\":2}"(json/read-str "{\"a\":1,\"b\":2}" :key-fn #(keyword "com.example" %));;=> {:com.example/a 1, :com.example/b 2}
megadhat egy :value-fnértéket a térképértékek konvertálásához az orout-ban. Az-fn értéket két argumentummal hívják meg, a kulcs és a thevalue, és a frissített értéket adja vissza.
(defn my-value-reader (if (= key :date) (java.sql.Date/valueOf value) value))(json/read-str "{\"number\":42,\"date\":\"2012-06-02\"}" :value-fn my-value-reader :key-fn keyword) ;;=> {:number 42, :date #inst "2012-06-02T04:00:00.000-00:00"}
 ne feledje, hogy az :value-fn csak térképeken (JSON objektumokon) működik. Ha az öngyökér adatstruktúrája például a dátumok vektora, akkor szüksége lesz ráelő – vagy utófeldolgozás az adatokon kívül.json. clojure.séta lehethasznos erre.
az-fn / value-fn
 kulcs sorrendje ha olvasáskor megadja a :key-fn és a :value-fn értéket is,akkor az-fn értéket a rendszer meghívja, miután a kulcsot a kulcs-fn feldolgozta.
a fordított igaz írás közben:
(defn my-value-writer (if (= key :date) (str (java.sql.Date. (.getTime value))) value))(json/write-str {:number 42, :date (java.util.Date. 112 5 2)} :value-fn my-value-writer :key-fn name) ;;=> "{\"number\":42,\"date\":\"2012-06-02\"}"
adatfolyam olvasása / írása
 a JSON-t közvetlenül a java.io.Reader fájlból is olvashatja json/readfájllal, és a JSON-t közvetlenül a java.io.Writer fájlba írhatja json/writefájllal.
több
egyéb lehetőségek állnak rendelkezésre. A részleteket lásd az API dokumentációjában.
fejlesztői információk
- GitHub projekt
 - hogyan járulhatunk hozzá
 - Bug Tracker
 - folyamatos integráció
 - kompatibilitási teszt mátrix
 
Változásnapló
- release 2.0.1 on 2021-Mar-19
- Fix Djson-37: fix off-by-one hiba olvasás hosszú húrok, regresszió 2.0.0
 
 - kiadás 2.0.0 2021-én-márc-19
- Perf DJSON-35: Cserélje ki a Printwritert általánosabb függelékre, csökkentse a csomagolást
 - Perf DJSON-34: hatékonyabb írás a közös útvonalhoz
 - Perf DJSON-32: használja az opciót térkép dinamikus változók helyett (befolyásolja az olvasást+írást)
 - Perf DJSON-33: javítsa az olvasás sebességét JSON húrok
 - fix DJSON-30: javítsa a rossz tesztet
 
 - Release 1.1.0 on 2021-Mar-5
- Fix DJSON-26: write-object kell ellenőrizni seq hurok var, nem param
 - Használja legújabb szülő pom (bump alapértelmezett clojure dep 1.8.0)
 - használjon közvetlen összekapcsolást az ” AOT ” osztályozó lib-n
 
 - Release 1.0.0 on 2020-Feb-18
 -  Release 0.2.7 on 2019-Nov-18
- Fix DJSON-29: dobjon kivételt a hiányzó objektum bejegyzésekre (extra vesszők)
 
 - Release 0.2.6 on 2015-Mar-6
- módosítása építeni, hogy készítsen egy AOT csomag osztályozó “AOT”
 
 - Release 0.2.5 on 2014-Jun-13
- Fix DJSON-17: dobd kivétel végtelen vagy NaN lebegőpontos értékek. A régi viselkedés érvénytelen JSON-t eredményezhet.
 
 - kiadás 0.2.4 a 2014-Jan-10
-  kis változás a viselkedés: 
clojure.data.json/pprintmost hozzáteszi anewline után a kimenet, mintclojure.core/pprint - Fix DJSON-13: flush kimenet után pprint
 - Fix DJSON-14: kezelni EOF belső karakter escape
 - Fix DJSON-15: rossz szintaxis teszt
 
 -  kis változás a viselkedés: 
 - Release 0.2.3 on 2013-Aug-30
- Enhancement DJSON-9: lehetőség, hogy elkerülje U + 2028 és U + 2029
 - Fix DJSON-11: nyomtatás felesleges vesszők érték-fn
 
 - kiadás 0.2.2 a 2013-április-07
- Fix DJSON-7: extra vesszők a kulcs/érték párok eltávolításakor)
 - Fix DJSON-8: rossz kimeneti adatfolyam 
write-json 
 - Release 0.2.1 on 2012-Oct-26
- visszaállítja visszafelé kompatibilitás 0.1.x kiadások. Az idősebb0. 1.az X API-k elavultként vannak megjelölve a dokumentációban. Egy későbbi kiadásban eltávolítják őket.
 
 - Release 0.2.0 on 2012-Oct-12
- nem ajánlott: ez a kiadás bevezetett törés APIchanges (átnevezés alapvető funkciók) nélkül utat forbackwards-kompatibilitás. Alkalmazások tranzitív függőségekkelmind a 0.2.x és 0.1.x API-k nem használhatják ezt a verziót.
 - Új: key-fn and: value-fn lehetővé teszi az értékek rugalmas átalakítását & JSON írásakor
 - nagy egész számok Bigintként történő olvasásának támogatása
 - opcionális támogatás a tizedesjegyek Bigdecimalként történő olvasásához
 - teljesítményjavítások
 
 - Release 0.1.3 on 2012-Mar-09
- Fix írás karakterláncok tartalmazó karakterek kívül BMP
 
 - Release 0.1.2 on 2011-Oct-14
- jobb elemzése hexadecimális karakter menekül
 - Fix EOF-kezelési hiba
 - Fix DJSON-1: reflexiós figyelmeztetések
 
 - Release 0.1.1 on 2011-július-01
-  győződjön meg arról, hogy a nyomtatás 
*out*mindig használ PrintWriter. 
 -  győződjön meg arról, hogy a nyomtatás 
 - Release 0.1.0 on 2011-Mar-18
- kezdeti kiadás.
 - forrás-kompatibilis a clojure-val.contrib.json, kivéve a névváltoztatást.
 
 
szerzői jog és licenc
szerzői jog (C) Stuart Sierra, Rich Hickey és közreműködői 2012-2020.Minden jog fenntartva. A szoftver használatára és terjesztésére vonatkozó feltételeket az Eclipse PublicLicense 1 szabályozza.0 (https://opensource.org/licenses/eclipse-1.0.php), amely képesmegtalálható az epl-v10 fájlban.html ennek gyökerében distribution.By a szoftver bármilyen módon történő használatával Ön elfogadja, hogy a jelen licenc feltételei kötelezőek. Nem távolíthatja el ezt az értesítést, vagy bármi más, ebből a szoftverből.