
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で質問しましょう!
似たような質問が見つかりました
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で半角数字1桁のみを全...
-
HTTPSのとき":"が"%3A"ではなく...
-
ひとつ上の階層にアクセスさせ...
-
ASP+アクセスでのSQLコメントに...
-
static_assertの警告版
-
linux メールサーバ メーリン...
-
VB2005 配列から要素を検索す...
-
サブウインドウから親ウインド...
-
ボタンをクリックすると数が増...
-
Objective-C 変数への代入エラー
-
データ整理のシェルスクリプト
-
「オブジェクトが必要です。」...
-
idを使わずにonclickで自身の要...
-
JavaScript window.openで開く...
-
コンストラクタでvar ?
-
JavaScriptでセンター表示で行...
-
特定文字列を消したい
-
HTML:Tableタグに対し、JavaScr...
-
Javascript 特定のフォルダのデ...
-
商品コードを入力で、商品名、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
アンカーリンクをクリックさせ...
-
javascriptで文字挿入でtoggle...
-
ifreamをリロードしたい
-
static と externについて
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
System::Drawing::Color::XXXX...
-
MFCのキャプション変更
-
VB.NETで変数の型は自作...
-
【Jquery】changeイベント毎にa...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
window.onloadでのfunction
-
hogehogeの由来
おすすめ情報