nsIJSON

by 2 contributors:

草案
このページは完成していません。

nsIJSON インタフェースは、JavaScript コードから JSON 文字列をエンコード、デコードする便利な方法を提供します。

注: このインタフェースは JavaScript コードからのみ利用されます。


Please add a summary to this article.
  最終更新: Gecko 1.9 (Firefox 3)

継承元: 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
 );
引数
<tt>str</tt>
デコードする JSON 文字列。
<tt>whitelist</tt>
 ?
戻り値

JSON 文字列から再構築された、元の JavaScript オブジェクト。

decodeFromStream()

入力ストリームから読み出した JSON 文字列をデコードします。JavaScript オブジェクトが存在する場合はそのオブジェクトを返します。

 JSObject decodeFromStream(
   in nsIInputStream stream,
   in long contentLength,
   [optional] in JSObject optFilter
 );
引数
<tt>stream</tt>
JSON 文字列を読み出す nsIInputStream
<tt>contentLength</tt>
読み出す JSON 文字列の長さ。
<tt>optFilter</tt>
 ?
戻り値

JSON 文字列から再構築された、元の JavaScript オブジェクトを表す JSObject

encode()

JavaScript オブジェクトを JSON 文字列へエンコードします。

 AString encode(
   in JSObject value,
   [optional] in JSObject whitelist
 );
引数
<tt>value</tt>
エンコードする JavaScript オブジェクト。
<tt>whitelist</tt>
 ?
戻り値

オブジェクトを表す JSON 文字列。

encodeToStream()

JavaScript オブジェクトを JSON 文字列へエンコードし、ストリームに書き込みます。

 void encodeToStream(
   in nsIOutputStream stream,
   in string charset,
   in boolean writeBOM
   in JSObject value,
   [optional] in JSObject optFilter
 );
引数
<tt>stream</tt>
JSON 文字列を書き込む nsIOutputStream
<tt>charset</tt>
使用する文字エンコーディング。「UTF-8」「UTF-16LE」「UTF-16BE」など。
<tt>writeBOM</tt>
ストリームにバイトオーダーマーク (BOM) を書き込む場合は true、書き込まない場合は false を指定します。
<tt>value</tt>
エンコードする JavaScript オブジェクト。
<tt>optFilter</tt>
?

オブジェクトをエンコードする

var myObj = {"foo":"bar"};

var myJSONString = nativeJSON.encode(myObj);

返される文字列は「{"foo":"bar"}」になります。

JSON 文字列をデコードする

上記の文字列は、decode() に渡して、元のオブジェクトに戻すことができます。

var myObj2 = nativeJSON.decode(myJSONString);

関連記事

ドキュメントのタグと貢献者

Contributors to this page: teoli, Kohei
最終更新者: teoli,