clojure で JSONを扱う術

こんにちは。健康診断で水しか口にできません、きたけーです。

今日は JSON について。

dakrone/cheshire

clojureJSONを扱うライブラリは clojure/data.json · GitHub とか dakrone/cheshire · GitHub があるんですけど、cheshireのほうが開発が活発なのと、シーケンスとしてパースできるのでchesireを選択しやす。

JSON文字列を生成

こんなかんじ

(ns json-sample.core
  (:require [cheshire.core :as cheshire]))

(defn -main [& args]
  (println (cheshire/generate-string {:name "kitak" :age 23}))
  (println (cheshire/generate-string [4 8 15 16 23 42])))

シーケンスとしてパース

こんなかんじ

(ns json-sample.core
  (:require [cheshire.core :as cheshire]))

(defn -main [& args]
  (println (take 5 (cheshire/parse-stream (clojure.java.io/reader "./timeline.json")))))