Clojure:
Trabalhando com JSON
Como fazer:
Clojure não inclui funções embutidas para trabalhar com JSON, então você normalmente usará bibliotecas de terceiros. cheshire
e jsonista
são escolhas populares devido à sua facilidade de uso e desempenho.
Usando o Cheshire
Primeiro, adicione o Cheshire às dependências do seu projeto em project.clj
:
[com.fasterxml.jackson.core/jackson-core "2.12.0"]
[cheshire "5.10.1"]
Para analisar uma string JSON em um mapa Clojure e converter um mapa para uma string JSON:
(require '[cheshire.core :as json])
;; Analisar string JSON para mapa Clojure
(let [entrada-json "{\"name\":\"John\", \"age\":30}"]
(json/parse-string entrada-json true)) ; => {"name" "John", "age" 30}
;; Converter mapa Clojure para string JSON
(let [mapa-clj {"name" "John", "age" 30}]
(json/generate-string mapa-clj)) ; => "{\"name\":\"John\",\"age\":30}"
Usando o Jsonista
Adicione o Jsonista ao seu projeto project.clj
:
[jsonista "0.3.2"]
Operações similares com Jsonista:
(require '[jsonista.core :as j])
;; Analisar string JSON para Clojure
(let [entrada-json "{\"name\":\"Emily\", \"age\":25}"]
(j/read-value entrada-json)) ; => {"name" "Emily", "age" 25}
;; Converter mapa Clojure para string JSON
(let [mapa-clj {"name" "Emily", "age" 25}]
(j/write-value-as-string mapa-clj)) ; => "{\"name\":\"Emily\",\"age\":25}"
Em ambas as bibliotecas, você tem a opção de codificar e decodificar estruturas de dados mais complexas, e existem funções e parâmetros adicionais que permitem a personalização dos processos de serialização e deserialização. Para a maioria das aplicações, a funcionalidade demonstrada fornece uma base sólida para trabalhar com JSON em aplicações Clojure.