Create  Edit  Diff  XUL Wiki  Index  Search  Changes  History  Source  RSS  wikifarm  Login

データをJSON形式で保存するために

XMLなどより簡便にデータを保存読み出しするにはJSON形式でデータを保存するのが便利である。 JavaScript1?.3から、Netscape系の環境では、JavaScriptオブジェクトをJSON形式の文字列へ変形するtoSourceメソッドが存在するのですが、日本語を含んでいる場合、その内容はASCII文字列に強制変換されてしまい不便である。そのためJavaScriptオブジェクトをJSON形式文字列に変換する関数を作っておくと便利である。

/**
* オブジェクトをJSON 形式の文字列に変換します
* 本来はMozilla内部にtoSourceという便利なメソッドがあるのですが、日本語文字列を問答無用で\u30FC等のコード番号のASCIIに変換するので、日本語を含む場合の回避策が必要だったので
* @param o 変換するJavaScriptオブジェクト
* @return 変換されたJSON文字列
*/
function uneval( o ){
  var arr=[], idx=0;
  for( var i in o ){
    var to=o[i];  // テンポラリオブジェクト
    if( 'object'==typeof o[i] ) to=this( o[i] );
    if( 'string'==typeof o[i] ) to='"'+o[i].replace(/\"/g, "'")+'"';
    arr[idx++] = (o instanceof Array)?to : i+' : '+to;
  }
  return (o instanceof Array)?'[ '+arr.join(' , ')+' ]':'{ '+arr.join(' , ')+' }';
}

stromtarife vergleichen Saarland gastarife vergleichen Nordrhein-Westfalen-NRW strompreise vergleichen gaspreise vergleichen billiger strom

Last modified:2010/06/15 03:04:03
Keyword(s):
References:[XUL Wiki]