JqueryでのJSONデータの操作
Jqueryを使い始めたばかりなのですが、JSONデータの操作で行き詰ってしまいました。
例えば下記のようにデータがあったとします。
var prefData= {
"長野県":[
{"市区名":"松本市", "町名":["会田","赤怒田","梓川倭"]},
{"市区名":"安曇野市", "町名":["明科中川手","明科光"]}
],
"滋賀県":[
{"市区名":"大津市", "町名":["青山","赤尾町","秋葉台"]},
{"市区名":"近江八幡市", "町名":["間之町","赤尾町","浅小井町"]}
]
}
セレクトメニューにて県を切り替えて、選択したvalueの値を元にデータを引っ張り出したいのですが・・
Jqueryを利用して下記のようにしてみました。(一部抜粋)
//HTML
<select id="select1">
<option value="長野県">長野県</option>
<option value="滋賀県">滋賀県</option>
</select>
//Javascript
var evalData = eval(prefData);
$("#category1").change(
function(){ selectPref($("#select1").val());}
);
function selectPref(val){
//ここで受け取ったvalを元に、市以下のデータを取り出したい
//そもそも↓こんな取り出し方は出来ない??
$.each(evalData.val, function(i, value) {
alert(value.市区名);
});
}
上記のようにするとevalData .val の箇所で「G is undefined」という意味の分からないエラーになります。
ちなみに evalData.val の箇所を evalData.長野県 などと指定するとちゃんとデータは取得できますのでデータの構造には問題ないと思います。
この場合、関数で受け取った変数を元にしてどのように指定すればデータが取れるのでしょうか。
お礼
ありがとうございます。 実は昨年、島内のとある地区のぼんぼんを取材させていただきましたが、 「唄っています」という情報が「(取材に来るなら)歌わせます!」という意味だったため、 結局はテープの音を取材して帰ることになってしまった経緯があります。 なので、人伝に事情を話して唄っている地区を探すよりも、 ネットのこういった場で「うちの近所では歌っているよー」 というような情報を探したほうが確実かと思った次第です。 仰るとおり、地域の公民館などにもあたってみようと思います。 ありがとうございました。