※ ChatGPTを利用し、要約された質問です(原文:JqueryでのJSONデータの操作)
JqueryでのJSONデータの操作
このQ&Aのポイント
JqueryでJSONデータを操作する方法について紹介します。
Jqueryを使ってセレクトメニューの値に応じてJSONデータからデータを取得する方法について解説します。
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.長野県 などと指定するとちゃんとデータは取得できますのでデータの構造には問題ないと思います。
この場合、関数で受け取った変数を元にしてどのように指定すればデータが取れるのでしょうか。
お礼
ありがとうございます!それでいけました。 すごく単純なことだったんです・・。 オブジェクトだからずっと .(ドット)でしか操作できないと勘違いしていました。 おかげで助かりました。