Clojure:
การทำงานกับ JSON
วิธีการ:
Clojure ไม่ได้รวมฟังก์ชันสำหรับทำงานกับ JSON โดยตรง ดังนั้นคุณจึงต้องใช้ไลบรารีของบุคคลที่สามโดยทั่วไป cheshire
และ jsonista
เป็นตัวเลือกยอดนิยมเนื่องจากความง่ายในการใช้งานและประสิทธิภาพ
การใช้ Cheshire
ก่อนอื่น, เพิ่ม Cheshire เข้าไปใน dependencies ของโปรเจ็กต์ใน project.clj
:
[com.fasterxml.jackson.core/jackson-core "2.12.0"]
[cheshire "5.10.1"]
เพื่อแปลงสตริง JSON เป็นแมพ Clojure และแปลงแมพเป็นสตริง JSON:
(require '[cheshire.core :as json])
;; แปลงสตริง JSON เป็นแมพ Clojure
(let [json-input "{\"name\":\"John\", \"age\":30}"]
(json/parse-string json-input true)) ; => {"name" "John", "age" 30}
;; แปลงแมพ Clojure เป็นสตริง JSON
(let [clj-map {"name" "John", "age" 30}]
(json/generate-string clj-map)) ; => "{\"name\":\"John\",\"age\":30}"
การใช้ Jsonista
เพิ่ม Jsonista เข้าไปในโปรเจ็กต์ project.clj
:
[jsonista "0.3.2"]
การดำเนินการที่คล้ายกันกับ Jsonista:
(require '[jsonista.core :as j])
;; แปลงสตริง JSON เป็น Clojure
(let [json-input "{\"name\":\"Emily\", \"age\":25}"]
(j/read-value json-input)) ; => {"name" "Emily", "age" 25}
;; แปลงแมพ Clojure เป็นสตริง JSON
(let [clj-map {"name" "Emily", "age" 25}]
(j/write-value-as-string clj-map)) ; => "{\"name\":\"Emily\",\"age\":25}"
ในทั้งสองไลบรารี, คุณมีตัวเลือกในการเข้ารหัสและถอดรหัสโครงสร้างข้อมูลที่ซับซ้อนมากขึ้น และมีฟังก์ชันเพิ่มเติมและพารามิเตอร์ที่อนุญาตให้มีการปรับแต่งกระบวนการ serialization และ deserialization สำหรับแอปพลิเคชันส่วนใหญ่, ฟังก์ชันที่แสดงให้เห็นถือเป็นพื้นฐานที่แข็งแกร่งสำหรับการทำงานกับ JSON ในแอปพลิเคชัน Clojure