質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

JavaScript

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

Q&A

解決済

2回答

315閲覧

2つの配列のうち1つの中身を参照したい[javascript]

gamips

総合スコア60

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

JavaScript

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

0グッド

0クリップ

投稿2019/03/22 05:05

編集2019/03/22 05:06

javascriptの勉強をしています。以下で、dataにpathUserとpathReposのjsonデータを入れているのですが、このうちpathUserのloginのみを取得することはできるのでしょうか?

javascript

1<!doctype html> 2<html> 3<head> 4 <title>WebAPI</title> 5 <script> 6 var TOKEN = 'xxxx'; 7 var pathUser = 'https://api.github.com/user'; 8 var pathRepos = 'https://api.github.com/user/repos'; 9 function xhrWrapper(path) { 10 var xhr = new XMLHttpRequest(); 11 xhr.open('get', path); 12 xhr.setRequestHeader('Authorization', 'token ' + TOKEN); 13 xhr.onload = function(){ 14 var data = JSON.parse(xhr.response); 15 console.log(data); 16 }; 17 xhr.onerror = function () { 18 console.log("error"); 19 }; 20 xhr.send(null); 21 }; 22 23 xhrWrapper(pathUser); 24 xhrWrapper(pathRepos); 25 26 27 </script> 28</head> 29<body> 30</body> 31</html>

consoleは以下のように表示されています。
このうちの上の方のloginの情報のみ取得したいのです。
イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

結局はプロパティへのアクセス、なので可能です。
console.log()で階層まで分かっているのなら、地道に辿るだけですね。
※「どこでどのように参照したいか、使いたいか」にもよります。場合によって今回用意したxhrWrapper()に引数を1つ追加するか、dataをreturnするか、工夫が必要になります。

投稿2019/03/22 05:22

編集2019/03/22 05:24
m.ts10806

総合スコア80850

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

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

gamips

2019/03/22 06:20

ありがとうございます。プロパティのアクセスで、console.log(data.login)とするとloginのデータは取れるのですが、二つ目の配列(pathRepos)をundefinedで取得してしまいます。1つ目の配列のみ参照したいのですがこちらのやり方がわからない状況です。
m.ts10806

2019/03/22 06:25

はい。そこが回答後半で※で書いたところです。 簡単なのはxhrWrapper()の第2引数を追加すること。そこで分岐させてdata.loginを出したいほうだけにフラグのような形で引数を渡すと良いです。 ただ、「どう使いたいか」という部分にもよるので、これだけが最適解とは限りません。
gamips

2019/03/22 07:47

ありがとうございます。とても勉強になりました!
m.ts10806

2019/03/22 08:22

解決されたんですかね? できればどのように解決したか、追記いただけると後から見た人の参考にもなりやすいので(コードであれば質問本文が良いですね)
gamips

2019/03/22 08:50

ご指摘ありがとうございます。できるところまでで解決を追加しました。振り分け部分はまた勉強してみます。
guest

0

回答を削除したので再投稿します。true、falseでフラグを立て以下のようなかたちで対応しました。

javascript

1<!doctype html> 2<html> 3<head> 4 <title>WebAPI</title> 5 <script> 6 var TOKEN = 'xxx'; 7 var pathUser = 'https://api.github.com/user'; 8 var pathRepos = 'https://api.github.com/user/repos?visibility=private'; 9 function xhrWrapper(path, flag) { 10 if(flag == true){ 11 var xhr = new XMLHttpRequest(); 12 xhr.open('get', path); 13 xhr.setRequestHeader('Authorization', 'token ' + TOKEN); 14 xhr.onload = function(){ 15 var data = JSON.parse(xhr.response); 16 console.log(data); 17 }; 18 xhr.onerror = function () { 19 console.log("error"); 20 }; 21 xhr.send(null); 22 } 23 }; 24 xhrWrapper(pathUser, true); 25 xhrWrapper(pathRepos, false); 26 </script> 27</head> 28<body> 29</body> 30</html>

投稿2019/03/27 05:14

gamips

総合スコア60

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

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

m.ts10806

2019/03/27 07:31

これだと、pathReposを引数で呼び出す意味がないような。
gamips

2019/03/27 14:05

実際はxhrWrapperを汎用的に使えるよう色々と工夫しないといけない感じかなぁと思いました。returnを使ったりして今試行錯誤していますが、それは質問とはちょっと外れちゃうので、とりあえずconsole.logに配列が1つだけ出せたのでこの質問は解決で大丈夫です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問