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-error
json-parse-error
なし。
なし。
json-load
call-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-version
call-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 リリース!