
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ランキング
-
HTTPSのとき":"が"%3A"ではなく...
-
static constメンバ変数(配列)...
-
Linux バイナリ実行できない "...
-
同じ型【ハイフンと数字】だけ...
-
Boolean型配列中のTrueの有無を...
-
JavaScriptでテーブル内?に矢...
-
イラレでナンバリングする方法
-
画像のURLをコピーするブックマ...
-
JavaScript window.openで開く...
-
functionから別のfunctionを実...
-
XMLでのAttributeを持ったNode...
-
idを使わずにonclickで自身の要...
-
javaで画像をランダム表示しつ...
-
javascriptで入力フォームに日...
-
$("body").height();と$("body"...
-
jspからjavascriptの変数引継ぎ
-
jQuery text()で、<br>タグも取...
-
VSCODE[Python]の設定について
-
同じIDで定義した要素の配列を...
-
onchangeイベントを使ってspan...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンをクリックすると数が増...
-
【正規表現】【javascript】CR...
-
同じ型【ハイフンと数字】だけ...
-
ASP+アクセスでのSQLコメントに...
-
HTTPSのとき":"が"%3A"ではなく...
-
サブウインドウから親ウインド...
-
confirmの連続?
-
VC++のちらつき防止方法
-
Boolean型配列中のTrueの有無を...
-
Vb.netのグローバル変数の宣言...
-
コールバック関数(?)をループし...
-
javascriptで文字挿入でtoggle...
-
【Jquery】changeイベント毎にa...
-
ifreamをリロードしたい
-
Excel VBA の ChangeFileAccess
-
MFCのキャプション変更
-
Linux バイナリ実行できない "...
-
-(ハイフン)_(アンダーバー)の...
-
2次元のJSON形式の配列の展開
-
C# .NET DataGridView の行を追...
おすすめ情報