
JSON形式で受け取った2次元配列をHTMLに書き出そうとしています。
配列を指定するカラム名?を変数にしたいのですがうまくできません。
var hoge = "abc";
var len = result.length;
for (i = 0; i < len; i++){
objResult.append("<li><a href=" + result[i].ID + ">" + result[i].hoge + "</a></li>");
}
※objResultはul要素を変数に収めたものです。
JSONデータは1列目のカラム名は『ID』で固定ですが2列目は変動する為、上記の『hoge』の部分にはJSONデータを受け取る前にカラム名を別処理で取得して格納しています。
ご教授の程よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
>『hoge』が変数として認識されず
hogeがkeyの文字列なら、以下の例のような指定方法でためしてみてください。
>column』の部分は変動する為、~~値は別の処理で取得することができます
対象オブジェクトから直接そのkeyも取得できますよ。
<参考例>
var jsonData = [{"ID":"1","hoge":"aaa"},{"ID":"2","fuga":"bbb"}];
var i, j, k, data = "";
for(i = 0; j = jsonData[i++];){
for(k in j) data += "[ " + k + " : " + j[k] + " ] ";
data += "\n";
}
alert(data);
回答ありがとうございます。
なるほど!と唸ってしまいました…For文をネストして取り出すのですね。
少し改造しましたが希望通りの値を得ることができました。
本当にありがとうございました。
No.1
- 回答日時:
質問の趣旨がいまいちわかりかねますが、文字列を使ってプロパティにアクセスするだけなら
こんな感じでいけるかもしれません。
<script>
var obj=[{"hoge":1,"fuga":"abc"},{"hoge":2,"fuga":"def"},{"hoge":3,"fuga":"xyz"}];
var xxx="fuga";
document.write(getProperty(obj[0],xxx));
function getProperty(obj,propertyName){
if((typeof obj).toUpperCase()!="OBJECT") return false;
for(var i in obj){
if(i==propertyName) return obj[i];
}
return null;
}
</script>
この回答への補足
わかりにくくてすみません><
var jsonData = [{"ID":"1","colum":"aaa"},{"ID":"2","colum":"bbb"}];
というJSON形式のデータがあります。
上記でいうと『colum』の部分が変動します。
もし変動しなければ、
var len = jsonData.length;
for(i = 0; i < len; i++){
$("ul").append("<li>" + jsonData[i].ID + jsonData[i].column + "</li>");
}
で、希望通りの形ができます。
しかし、『column』の部分は変動する為、以下のように変数にしたいと思っています。(値は別の処理で取得することができます。)
var columnName = hoge;
var len = jsonData.length;
for(i = 0; i < len; i++){
$("ul").append("<li>" + jsonData[i].ID + jsonData[i].hoge + "</li>");
}
上記の形では『hoge』が変数として認識されず、undefinedになってしまいます。
PHPでは、
array[0][1]
のような形で多次元配列にアクセスできる方法があったと思うのですが、JQUERYには同様の方法はないのでしょうか?もしくは上記の『hoge』を変数として認識させる方法はありますか?
言葉足らずな質問でわかり辛くすみませんでした。
アドバイス頂きありがとうございました。
今回は他の方法にて実現しました。
また機会がございましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Outlookのアカウントがあるとメ...
-
jsonテキストデータの並び替え...
-
jsで、配列内の文章を改行する...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTTPSのとき":"が"%3A"ではなく...
-
ASP+アクセスでのSQLコメントに...
-
javascriptで文字挿入でtoggle...
-
同じ型【ハイフンと数字】だけ...
-
hoge の謎
-
Excel VBA の ChangeFileAccess
-
Boolean型配列中のTrueの有無を...
-
ボタンをクリックすると数が増...
-
【Jquery】changeイベント毎にa...
-
【正規表現】【javascript】CR...
-
confirmの連続?
-
ifreamをリロードしたい
-
Vb.netのグローバル変数の宣言...
-
バイナリファイルから文字列を...
-
構造体を引数で関数へ渡す
-
ひとつ上の階層にアクセスさせ...
-
JQueryの繰り返し処理が動かな...
-
複数ファイルで使うグローバル...
-
static constメンバ変数(配列)...
-
アンカーリンクをクリックさせ...
おすすめ情報