[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

11.26 rfc.json - JSONのパーズと構築

Module: rfc.json

RFC4627で規定される、JSON形式をパーズしてS式に直す手続きと、 S式をJSON形式に変換する手続きが提供されます。

Condition type: <json-parse-error>

パーズ手続きparse-jsonparse-json-stringは、 無効なJSON構文に出会った時にこのコンディションを投げます。 <error>を継承し、次のスロットを追加で持ちます。

Instance Variable of <json-parse-error>: position

エラーが起きた入力位置(文字数)。

Function: parse-json :optional input-port

JSON表記をinput-port (省略された場合はcurrent-input-port)から 読み込みパーズして、結果をS式で返します。 パーズエラーが起きた場合は<json-parse-error>コンディションを投げます。

下のテーブルに、JSONのデータ型がどのようにSchemeにマップされるかを示します。 (将来は、このマッピングをカスタマイズできるようにするかもしれません。)

true, false, null

シンボルtrue, false and null

配列

Schemeのベクタ。

オブジェクト

Schemeの連想リスト。キーは文字列で、値はSchemeオブジェクト。

数値

Schemeの不正確な実数。

文字列

Schemeの文字列。

Function: parse-json-string str

文字列strをJSONとしてパーズし、結果をS式で返します。 パーズエラーが起きた場合は<json-parse-error>コンディションを投げます。

JSONのデータ型とSchemeの型とのマッピングについては上のparse-json を参照してください。

Condition type: <json-construct-error>

construct-jsonconstruct-json-stringは、 JSONに変換できないSchemeオブジェクトを見つけるとこのコンディションを投げます。 <error>を継承し、次のスロットを追加で持ちます。

Instance Variable of <json-construct-error>: object

JSON表現に変換できなかったSchemeオブジェクト。

Function: construct-json obj :optional output-port
Function: construct-json-string obj

SchemeオブジェクトobjのJSON表現を作ります。 construct-jsonは結果をoutput-portに書き出します。デフォルトは current-output-portです。construct-json-stringは結果を文字列で返します。 RFC4627はJSONテキストはobjectかarrayであると定めているので、 objはJSONオブジェクトかJSON配列へと変換できるSchemeオブジェクト でなければなりません。

objがJSONにマップできないオブジェクトを含んでいた場合は <json-consturct-error>コンディションが投げられます。 JSONとScheme間のマッピングについては上のparse-jsonのエントリを 参照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Shiro Kawai on May 9, 2012 using texi2html 1.82.