Clojure:
JSONを活用する
方法:
ClojureにはJSONを扱うための組み込み関数が含まれていないため、通常はサードパーティのライブラリを使用します。cheshire
とjsonista
は使いやすさとパフォーマンスのために人気のある選択肢です。
Cheshireの使用
まず、project.clj
のプロジェクト依存関係にCheshireを追加します:
[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の使用
プロジェクトのproject.clj
にJsonistaを追加:
[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}"
どちらのライブラリも、より複雑なデータ構造のエンコードとデコードのオプションがあり、シリアライゼーションとデシリアライゼーションプロセスのカスタマイズを可能にする追加の関数とパラメーターがあります。ほとんどのアプリケーションにとって、示された機能はClojureアプリケーションでのJSONの扱いのための堅固な基盤を提供します。