dojoオブジェクトの基本(後編)

沖林正紀
2008/01/18 15:11

今回はJSONとAjaxに関わるdojoオブジェクトを紹介しよう。

 前2回でdojoオブジェクトのさまざまなメソッドを紹介してきた。今回はその最後として、JSONとAjaxに関するものを紹介したい。

fromJson

 fromJson:JSON形式の文字列からオブジェクトを生成。生成できないときは文字列をそのまま返す。

var obj = dojo.fromJson( '{ building : { area : "東京都港区", name : '
                         + '["六本木ヒルズ", "東京ミッドタウン"] } }' );
document.write( obj.building.area );     // "東京都港区"
document.write( obj.building.name[0] );  // "六本木ヒルズ"

toJson

 toJson:オブジェクトをJSON形式の文字列に変換する。

var json = dojo.toJson( obj, true );
// trueは文字列をタブ(¥t)でインデントすることを表す(省略可能)

インデントの例
{
	"building": {
		"area": "東京都港区", 
		"name": [
			"六本木ヒルズ", 
			"東京ミッドタウン"
		]
	}
}

formToJson

 formToJson:フォーム(<form>)で入力・選択された内容をJSON形式の文字列に生成。複数選択が可能な項目は、選択された要素の配列が値となる。ボタン(画像含む)、アップロードするファイルの名称、使用不可(disable)の要素は含まない。

 下記は<form id="search">のフォームから入力された内容をJSON形式の文字列に生成する例。

var json = dojo.formToJson( 'search', true );
// trueは文字列をタブ(¥t)でインデントすることを表す(省略可能)
図1 フォームに入力した内容 図1 フォームに入力した内容

リスト1 図1のフォーム(HTML抜粋)

    <form id="search" action="javascript:void(0);"><fieldset>
      <legend>検索フォーム</legend>
      キーワード<input type="text" name="keyword" size="50" /><br />
      すべて<input type="radio" name="allwords" value="true" checked="checked" />
      いずれか<input type="radio" name="allwords" value="false" /><br />
      表示項目
      タイトル<input type="checkbox" name="items" value="title" checked="checked" />
      説明<input type="checkbox" name="items" value="desc" /><br />
      件数<select name="results">
        <option value="10" selected="selected">10件</option>
        <option value="10">20件</option>
      </select>
      内容<select name="content" size="2" multiple="multiple">
        <option value="summary" selected="selected">概要</option>
        <option value="detail">詳細</option>
      </select><br />
      <input type="submit" value="検索する" />
      <input type="reset" value="クリア" />
    </fieldset></form>

 変数jsonに代入される文字列(インデント後)

{
	"keyword": "JavaScriptライブラリ dojo", 
	"allwords": "true", 
	"items": [
		"title", 
		"desc"
	], 
	"results": "20", 
	"content": [
		"summary", 
		"detail"
	]
}
記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
米フォレスター・リサーチ社 シニアアナリスト Jeremiah K.Owyang氏を迎え、同氏が提唱するソーシャルテクノロジーを効果的に活用方法するための方法『POST』を日本で初めて紹介する注目のリアルイベント
  • 新着記事
  • 人気記事
  • 特集
  • ブログ