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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

2222閲覧

JSONで取得した値の表示について教えてください。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/11/02 14:26

編集2017/11/02 15:25

こんばんは。

現在、コインチェックという仮想通貨販売所のAPIを利用して、通貨の価格を表示させたいと考えております。

まずは api.php というファイルを作成して下記のように API を利用してデータを取得しました。

php

1<?php 2 3$url = [ 4 "https://coincheck.com/api/rate/btc_jpy", 5 "https://coincheck.com/api/rate/eth_jpy", 6 "https://coincheck.com/api/rate/etc_jpy", 7 "https://coincheck.com/api/rate/dao_jpy", 8 "https://coincheck.com/api/rate/lsk_jpy", 9 "https://coincheck.com/api/rate/fct_jpy", 10 "https://coincheck.com/api/rate/xmr_jpy", 11 "https://coincheck.com/api/rate/rep_jpy", 12 "https://coincheck.com/api/rate/xrp_jpy", 13 "https://coincheck.com/api/rate/zec_jpy", 14 "https://coincheck.com/api/rate/xem_jpy", 15 "https://coincheck.com/api/rate/ltc_jpy", 16 "https://coincheck.com/api/rate/dash_jpy", 17 "https://coincheck.com/api/rate/bch_jpy" 18]; 19 20$result = []; 21 22foreach ($url as $value){ 23 24 $conn = curl_init(); // cURLセッションの初期化 25 curl_setopt($conn, CURLOPT_URL, $value); // 取得するURLを指定 26 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。 27 $result[] = curl_exec($conn); 28 curl_close($conn); //セッションの終了 29 30} 31 32echo json_encode($result, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);

次に下記のファイルを作成して jQuery と ajax を利用して、とりあえず console.log で最初の通貨の価格を表示しようと下記のように記述しました。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<meta name="robots" content="noindex"> 6<meta name="viewport" content="width=device-width, initial-scale=1.0"> 7<meta http-equiv="X-UA-Compatible" content="ie=edge"> 8<title>API TEST</title> 9<script src="https://code.jquery.com/jquery-1.12.4.js" integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU=" crossorigin="anonymous"></script> 10<script type="text/javascript"> 11$(function(){ 12 13 $.ajax({ 14 url: "api.php", 15 dataType: "json" 16 }).done(function(data, status, xhr) { 17 18 // これだと {"rate":"816180.0"} と表示される 19 console.log(data['0']); 20 21 // これだと undefined になる 22 console.log(data['0'].rate); 23 24 }).fail(function(xhr, status, error) { 25 26 }).always(function(arg1, status, arg2) { 27 28 }); 29 30}); 31</script> 32</head> 33<body> 34</body> 35</html>

価格を表示するために console.log(data['0']); または console.log(data['0'].rate); と記述しましたが、うまく価格だけを取れません。

どうやると最初の価格だけを表示されることができるのでしょうか?

教えてください。

よろしくお願いします。


追記

ちなみに console.log(data); と記述したときの console は下記のように表示されます。

イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。
$result[] = curl_exec($conn);

curl_exec()の結果を文字列のまま、$result[]に入れているからではないでしょうか。
json_decode(curl_exec($conn))としてあげれば解決するかと。

投稿2017/11/02 19:18

sa-yu

総合スコア201

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

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

退会済みユーザー

退会済みユーザー

2017/11/03 02:27

できたー!!!!神!!! ありがとうございます。
guest

0

console.log(data[0].rate); これも試されましたか?

投稿2017/11/02 14:29

kei344

総合スコア69407

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

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

退会済みユーザー

退会済みユーザー

2017/11/02 14:38

今、試してみましたが、 undefined になります。 ちなみにですが、環境は MAMP で、console は Chromeのデベロッパーツールで確認しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問