Clojure:
JSONを活用する

方法:

ClojureにはJSONを扱うための組み込み関数が含まれていないため、通常はサードパーティのライブラリを使用します。cheshirejsonistaは使いやすさとパフォーマンスのために人気のある選択肢です。

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の扱いのための堅固な基盤を提供します。