🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

2501閲覧

reactでaxiosを使って取得したJSONを配列に格納したい

hello_whats_up

総合スコア57

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/09/06 08:33

編集2019/09/06 15:57

分からないこと

Reactでaxiosを使って取得したJSONデータを配列に格納したいのですが、うまくいきません。
おかしいところを教えて頂けないでしょうか。
下がコードです。

react

1var listName = []; 2axios 3 .get( ENDPOINT, { 4 headers: { "Content-Type": "application/json" }, 5 data: {} 6 }) 7 .then( (res) => { 8 for(var i in Nunber(res.data.num) ){ 9 listName.push(res.data.array[i].name); 10 } 11          console.log(listName); 12 }) 13 .catch( (error) => { 14 console.log('通信に失敗しました'); 15 });

得られるJSONは以下の通りです。

JSON

1{ 2 "array": [ 3 { 4 "id": 1, 5 "name": "パン屋" 6 }, 7 { 8 "id": 2, 9 "name": "弁当屋" 10 }, 11 { 12 "id": 3, 13 "name": "カレー屋" 14 }, 15 { 16 "id": 4, 17 "name": "肉屋" 18 }, 19 { 20 "id": 5, 21 "name": "八百屋" 22 } 23 ], 24 "foodNum": 5, 25 "userId": 1 26}

このようにして、dataのなかのarrayに入ってるname要素を配列にいれたいのですが、コンソールで確認してもからの配列のままです。
どこがいけないのでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jun68ykt

2019/09/06 09:10

GET /ENDPOINT で返ってくる JSON も質問に追記をお願いしたいです。
jun68ykt

2019/09/06 09:18

それと、もう一点、ご質問に挙げられているコードの中に or(var i in Nunber(res.data.num) ){ という行がありますが、 Nunber は Number の間違いではありませんか?
hello_whats_up

2019/09/06 15:58

情報の追記をしました。 ご指摘ありがとうございます。
jun68ykt

2019/09/06 16:16

JSONの追記どうもです。回答しました。
guest

回答1

0

ベストアンサー

以下のように修正してみると、いかがでしょう?

修正前

javascript

1for(var i in Nunber(res.data.num) ){

修正後

javascript

1for (var i=0; i < res.data.array.length; ++ i) {

上記の修正後の動作を確認するため、以下

を作成しました。これは、上記の修正を行い、ENDPOINT からGETするとご質問に挙げられているJSONが返されるようにして、動作確認できるように作ったものです。

console に、意図通りに、arrayの各要素の name が出力されるのを確認できるかと思います。

追記

レスポンスから listName を作成するために、以下のように map を使うこともできます。

javascript

1listName = res.data.array.map(e => e.name);

投稿2019/09/06 16:15

編集2019/09/06 16:24
jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hello_whats_up

2019/09/06 16:35

JSONを取得できるのを確認しました。 迅速な回答に感謝します。ありがとうございます。
jun68ykt

2019/09/06 16:38

どういたしまして。解決したようで、よかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問