--- id: 587d7fae367417b2b2512be5 title: JSON データを HTML に変換する challengeType: 6 forumTopicId: 16807 dashedName: convert-json-data-to-html --- # --description-- JSON API からデータを取得したので、そのデータを HTML で表示できます。 猫の写真のオブジェクトが配列に格納されているので、`forEach` メソッドを使用してデータをループ処理することができます。 各アイテムに到達すると、HTML 要素を変更することができます。 まず、`let html = "";` で html 変数を宣言します。 次に、JSON をループ処理し、キー名を `strong` タグでラップする変数に HTML を追加し、その後に値を追加します。 ループが終わったら、それをレンダリングします。 これを行うコードを次に示します。 ```js let html = ""; json.forEach(function(val) { const keys = Object.keys(val); html += "
"; keys.forEach(function(key) { html += "" + key + ": " + val[key] + "
"; }); html += "

"; }); ``` **注:** このチャレンジでは、新しい HTML 要素をページに追加する必要があるので、`textContent` に頼ることはできません。 代わりに、`innerHTML` を使用する必要があります。これにより、サイトがクロスサイトスクリプティング攻撃に対して脆弱になる可能性があります。 # --instructions-- `forEach` メソッドを追加して JSON データをループ処理し、それを表示するための HTML 要素を作成してください。 JSON の例を示します。 ```json [ { "id":0, "imageLink":"https://s3.amazonaws.com/freecodecamp/funny-cat.jpg", "altText":"A white cat wearing a green helmet shaped melon on its head. ", "codeNames":[ "Juggernaut", "Mrs. Wallace", "Buttercup" ] } ] ``` # --hints-- `html` 変数にデータを保存する必要があります。 ```js assert(__helpers.removeWhiteSpace(code).match(/html(\+=|=html\+)/g)) ``` `forEach` メソッドを使用して、API から取得した JSON データをループ処理する必要があります。 ```js assert(code.match(/json\.forEach/g)); ``` `strong` タグでキー名をラップする必要があります。 ```js assert(code.match(/.+<\/strong>/g)); ``` # --seed-- ## --seed-contents-- ```html

Cat Photo Finder

The message will go here

``` # --solutions-- ```html

Cat Photo Finder

The message will go here

```