- ベストアンサー
2次元のJSON形式の配列をHTMLに展開する方法
- 2次元のJSON形式の配列をHTMLに書き出す方法について教えてください。
- 配列を指定するカラム名を変数にしたいがうまくできません。どうすればいいですか?
- JSONデータの1列目のカラム名は『ID』で固定で、2列目は変動します。カラム名を別処理で取得し、『hoge』の部分に格納してHTMLに書き出したいです。
- みんなの回答 (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);
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
質問の趣旨がいまいちわかりかねますが、文字列を使ってプロパティにアクセスするだけなら こんな感じでいけるかもしれません。 <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』を変数として認識させる方法はありますか?
お礼
回答ありがとうございます。 なるほど!と唸ってしまいました…For文をネストして取り出すのですね。 少し改造しましたが希望通りの値を得ることができました。 本当にありがとうございました。