dijit.form.ComboBoxに渡すJSON形式について

 以前dijit.form.ComboBoxに渡す、dojo.data.ItemFileReadStoreの内容について、わからないまま適当にやっちゃったのですが、最近になって調べてみましたのでメモっておきます。

var tStore = new dojo.data.ItemFileReadStore({url: "./comboboxdata.php"});
<input dojoType="dijit.form.ComboBox" id="sel" store="tStore" />

などとして、dijitのComboBoxに使うリストデータを指定するわけですが、dojo.data.ItemFileReadStoreが受け取るJSONの形式についてこのページの説明によると、

{
	"identifier": "name",
	"label": "lv",
	"items": [
		{"name": "北海道", "lv": "hokkaidou"},
		{"name": "東北", "lv": "touhoku"},
		{"name": "関東", "lv": "kantou"}
	]
}

という風になります。ここで、トップにあるitentifierはitemsにおけるユニークとなる識別子があれば指定し、無しでもいいです。labelもitemsにおいて人が読んでわかるラベルで、無しでもよい。とのことなので、ComboBoxに渡す形式としては、

{
	"items": [
		{"name": "北海道"},
		{"name": "東北"},
		{"name": "関東"}
	]
}

で十分ということになります。ここで、キー名としてnameを使っていますが、これは、ComboBoxのsearchAttrの対象がデフォルトでnameだからです。すなわち、nameの代わりに

<input dojoType="dijit.form.ComboBox" id="sel" store="tStore" searchAttr="chimei" />

などとすれば、

{
	"items": [
		{"chimei": "北海道"},
		{"chimei": "東北"},
		{"chimei": "関東"}
	]
}

JSONデータでもOKということになります。
 ComboBoxで表示されるラベルと、値を別にする方法ですが、

<input dojoType="dijit.form.ComboBox" id="sel" store="tStore" labelAttr="label" />

と、labelAttrを設定して、

{
	"items": [
		{"name": "kyusyuu", "label": "九州"},
		{"name": "shikoku", "label": "四国"},
		{"name": "chugoku", "label": "中国"}
	]
}

とすれば、表示はlabelの内容で、値はnameの内容で。という具合にできることがわかりました。ただし、選択後、TextBoxに入って表示される値はnameの値になりますけど。