SQLの窓

2010年11月03日


JSON と文字列の関係

外部より JSON フォーマットのデータを取得した時点では「文字列」ですから、それを JavaScript で使うようにする方法は一般的ですが、そこから「先」は結構多用で一般的では無いような気がします。

そもそも、JSON の a["a2"] は、連想配列のように見えますが、特殊文字で定義されたプロパティを参照する為の書式ですし。

また、eval 使うにあたって、配列はそのままであるとか、for in も結構実際に使うと面倒な構文であったりします。

JavaScript は、自分が知ってる言語の中では、最も難解で不可思議な機能を持ったものだと思っています。
<script type="text/javascript">
function scriptTest(evt) {

	// JSON 文字列を実体に変える一般的では無い方法
	var x = (new Function( 'return {"a1":"Finction","a2":"オブジェクトの","a3":"テスト"}' ))();
	alert(x.a1+x.a2+x.a3);

	// JSON 文字列
	var str_json = '{"a1":1,"a2":2,"a3":3}';

	// オブジェクト化
	var a = eval('(' + str_json + ')');

	// プロパティとして参照	
	alert( a.a2 );

	// 特殊文字のプロパティを参照する書式
	alert( a["a2"] );

	// 配列文字列
	var arr_str = '["a1","a2","a3"]';

	// 配列化
	a = eval(arr_str);

	// 配列として参照
	alert( a[1] );

	// 文字列リストに変換
	alert( a.join(",") );

	// リスト文字列を配列化
	a = 'a1,a2,a3'.split(",");

	// 配列として参照
	alert( a[1] );

	// 文字列リストに戻す
	alert( a.join(",") );

	// 配列を、JSON 文字列に変換
	var str = "";
	for( i = 0; i < a.length; i++ ) {
		if ( i != 0 ) {
			str += ",";
		}
		str += '"'+i+'":"'+a[i] + '"';
	}

	// オブジェクト化
	a = eval('({' + str + '})');

	// 特殊文字のプロパティを参照
	alert( a["1"] );

	// オブジェクト内のプロパティの一覧
	for( x in a ) {
		alert( x + ":" +a[x]);
	}
}
</script>
<input type="button" value="実行" onclick='scriptTest(event);'>



タグ:JSON javascript
【JavaScript オブジェクトの最新記事】
posted by lightbox at 2010-11-03 16:15 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり