json-syck - syck を利用したそこそこ速い JSON パーサ
(require "json-syck")
(use-package :json-syck)
(json-load
"{\"title\":\"\\u306f\\u3066\\u306a\\u30b9\\u30bf\\u30fc\\u65e5\\u8a18\",
\"uri\":\"http://d.hatena.ne.jp/hatenastar/\",
\"star_count\":\"75630\"}")
;;=> (("title" . "はてなスター日記")
;; ("uri" . "http://d.hatena.ne.jp/hatenastar/")
;; ("star_count" . 75630))
json-syck は syck を利用した JSON パーサです。
アプリケーションは以下のコードを追加することで json-syck を利用することができます。
(in-package :you-application-package) (require "json-syck") (use-package :json-syck)
json-syck は以下のモジュールに依存しています。
json-syck は以下のパッケージを利用しています。
nickname はありません。
json-syck は以下のシンボルを export しています。
json-syck パッケージ
[API]
[バージョン]
[例外]
json-syck で定義している例外の継承関係は以下のとおりです。
json-simple-errorjson-parse-errorなし。
なし。
json-loadcall-seq:
(json-load str [options...]) => S expression
JSON テキストを読み込み S 式に変換します。
以下のオプションを指定可能です。
JSON の null に対応する lisp の値を指定します。
デフォルト値は nil です。
(json-load "name: null" :null :json-null)
;; => (("name" . :json-null))
JSON の true に対応する lisp の値を指定します。
デフォルト値は t です。
(json-load "xyzzy: true" :true :json-true)
;; => (("xyzzy" . :json-true))
JSON の false に対応する lisp の値を指定します。
デフォルト値は nil です。
(json-load "xyzzy: false" :false :json-false)
;; => (("xyzzy" . :json-false))
JSON の Arrays のマッピング方法を指定します。
デフォルト値は:sexp です。
(json-load "[1, 2, 3]" :seq :sexp) ;; => (1 2 3) (json-load "[1, 2, 3]" :seq :array) ;; => #(1 2 3)
JSON の Objects のマッピング方法を指定します。
デフォルト値は:sexp です。
(json-load "{xyzzy: common lisp, emacs: emacs lisp}" :map :sexp)
;; => (("xyzzy" . "common lisp") ("emacs" . "emacs lisp"))
(setf h (json-load "{xyzzy: common lisp, emacs: emacs lisp}" :map :hash-table))
;; => #<hashtable 52893588>
(gethash "xyzzy" h)
;; => "common lisp"
;; t
(gethash "emacs" h)
;; => "emacs lisp"
;; t
hash-table-test も参照してください。
hash-table のテスト関数を指定します。
デフォルトは equal です。
(setf h (json-load "{name: hogehoge}" :map :hash-table))
;; => #<hashtable 52893564>
(hash-table-test h)
;; => equal
(gethash "name" h)
;; => "hogehoge"
;; t
(gethash "NaME" h)
;; => nil
nil
(setf h (json-load "{name: hogehoge}" :map :hash-table :hash-table-test #'equalp))
;; => #<hashtable 52893180>
(hash-table-test h)
;; => equalp
(gethash "name" h)
;; => "hogehoge"
;; t
(gethash "NaME" h)
;; => "hogehoge"
;; t
json-syck-versioncall-seq:
(json-syck-version) => "majar.minor.teeny"
json-syck (本ライブラリのこと) のバージョンを返します。
バージョンは major.minor.teeny という形式です。 それぞれの番号は必ず 1 桁にするので、以下のように比較することができます (Ruby と同じです :-)。
(if (string<= "1.1.0" (json-syck-version))
(1.1.0 以降で有効な処理)
(1.1.0 より前のバージョンでの処理))みやむこ かつゆき (<URL:mailto:miyamuko (at) gmail.com>)
json-syck は MIT/X ライセンスにしたがって利用可能です。
See json-syck/docs/MIT-LICENSE for full license.
json-syck 0.1.1 リリース!
json-syck 0.1.0 リリース!
json-syck 0.0.2 リリース!
json-syck 0.0.1 リリース!