nsIJSON
出典: MDC
この記事は Firefox 3 の新機能について述べています
草案
このページは完成していません。
nsIJSON インタフェースは、JavaScript コードから JSON 文字列をエンコード、デコードする便利な方法を提供します。
注: このインタフェースは JavaScript コードからのみ利用されます。
目次 |
nsIJSON は dom/public/idl/json/nsIJSON.idl で定義されています。これは scriptable で
非凍結です。 (Mozilla 1.9から更新されていません)
継承元: nsISupports
実装: @mozilla.org/dom/json;1 インスタンスを作成するには、以下のように記述します。
var nativeJSON = Components.classes["@mozilla.org/dom/json;1"]
.createInstance(Components.interfaces.nsIJSON);
[編集] メソッドの概要
註: IDL ファイルには、コメントアウトされた IDL が一部含まれています。これは、その部分が IDL で適切に記述できないことを表現しているのが原因です。ただし、この記事の目的に照らし合わせて、実在するかのように説明し、この問題を意図的に無視しています。
JSObject decode(in AString str, [optional] in JSObject whitelist);
|
JSObject decodeFromStream(in nsIInputStream stream, in long contentLength, [optional] in JSObject optFilter);
|
AString encode(in JSObject value, [optional] in JSObject whitelist);
|
void encodeToStream(in nsIOutputStream stream, in string charset, in boolean writeBOM, in JSObject value, [optional] in JSObject optFilter);
|
[編集] メソッド
[編集] decode()
JSON 文字列をデコードします。JavaScript オブジェクトが存在する場合はそのオブジェクトを返します。
JSObject decode( in AString str, [optional] in JSObject whitelist );
[編集] 引数
- str
- デコードする JSON 文字列。
- whitelist
- ?
[編集] 戻り値
JSON 文字列から再構築された、元の JavaScript オブジェクト。
[編集] decodeFromStream()
入力ストリームから読み出した JSON 文字列をデコードします。JavaScript オブジェクトが存在する場合はそのオブジェクトを返します。
JSObject decodeFromStream( in nsIInputStream stream, in long contentLength, [optional] in JSObject optFilter );
[編集] 引数
- stream
- JSON 文字列を読み出す
nsIInputStream。 - contentLength
- 読み出す JSON 文字列の長さ。
- optFilter
- ?
[編集] 戻り値
JSON 文字列から再構築された、元の JavaScript オブジェクトを表す JSObject。
[編集] encode()
JavaScript オブジェクトを JSON 文字列へエンコードします。
AString encode( in JSObject value, [optional] in JSObject whitelist );
[編集] 引数
- value
- エンコードする JavaScript オブジェクト。
- whitelist
- ?
[編集] 戻り値
オブジェクトを表す JSON 文字列。
[編集] encodeToStream()
JavaScript オブジェクトを JSON 文字列へエンコードし、ストリームに書き込みます。
void encodeToStream( in nsIOutputStream stream, in string charset, in boolean writeBOM in JSObject value, [optional] in JSObject optFilter );
[編集] 引数
- stream
- JSON 文字列を書き込む
nsIOutputStream。 - charset
- 使用する文字エンコーディング。「UTF-8」「UTF-16LE」「UTF-16BE」など。
- writeBOM
- ストリームにバイトオーダーマーク (BOM) を書き込む場合は
true、書き込まない場合はfalseを指定します。 - value
- エンコードする JavaScript オブジェクト。
- optFilter
- ?
[編集] 例
[編集] オブジェクトをエンコードする
var myObj = {"foo":"bar"};
var myJSONString = nativeJSON.encode(myObj);
返される文字列は「{"foo":"bar"}」になります。
[編集] JSON 文字列をデコードする
上記の文字列は、decode() に渡して、元のオブジェクトに戻すことができます。
var myObj2 = nativeJSON.decode(myJSONString);