Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

nsIJSON

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

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);

関連記事

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

 このページの貢献者: teoli, Kohei
 最終更新者: teoli,