• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2次元のJSON形式の配列の展開)

2次元のJSON形式の配列をHTMLに展開する方法

このQ&Aのポイント
  • 2次元のJSON形式の配列をHTMLに書き出す方法について教えてください。
  • 配列を指定するカラム名を変数にしたいがうまくできません。どうすればいいですか?
  • JSONデータの1列目のカラム名は『ID』で固定で、2列目は変動します。カラム名を別処理で取得し、『hoge』の部分に格納してHTMLに書き出したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答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);

nyan_ajd
質問者

お礼

回答ありがとうございます。 なるほど!と唸ってしまいました…For文をネストして取り出すのですね。 少し改造しましたが希望通りの値を得ることができました。 本当にありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答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>

nyan_ajd
質問者

お礼

言葉足らずな質問でわかり辛くすみませんでした。 アドバイス頂きありがとうございました。 今回は他の方法にて実現しました。 また機会がございましたらよろしくお願いします。

nyan_ajd
質問者

補足

わかりにくくてすみません>< 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