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

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

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

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

JSON

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

JavaScript

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

2622閲覧

APIリクエストして得たJSONをPC画面に表示する方法

MON5277

総合スコア22

HTML5

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

JSON

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

JavaScript

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/03/16 02:26

ある機器にAPIリクエストで得たJSONを元に得た数値を手軽にweb画面に表示したいと思っています。
ただしインターネット接続環境はありません。

使用出来る設備は

  • PCもしくはラズベリーパイ
  • APIを受けてJSONを吐き出す機器(認証不要)
  • LAN環境

流れですが、
0. 機器にAPIリクエスト
0. 機器からJSONを取得
0. JSONから必要なデータ(2つ)抽出
0. 抽出データ同士で差分計算
0. 結果を画面に表示

これらに必要なツールや手段についてアドバイスいただけますと助かります。
WEB画面で無いほうが簡単ならそちらの方法でも大丈夫です。
どうぞよろしくお願いいたします。

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

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

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

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

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

yambejp

2017/03/16 03:00 編集

インターネット接続環境がないとして、web画面で確認するということは、機器へのアクセスはhttpベースでよいのでしょうか?その際機器側にhtmlを置くことは可能ですか?それともあくまでクライアント側のスクリプトで処理したいのでしょうか?その機器はローカルからのクロスオリジンなajax要求を受けられるのでしょうか?
MON5277

2017/03/16 03:20

質問への修正依頼有難うございます。機器へのアクセスはhttpベースで可能です。大変申し訳ないのですが、機器側にhtmlを置くとはどういった事を指すのでしょうか?ちなみに機器はwebブラウザから色々な設定をしたり出来るような物です。処理はクライアント側のスクリプトで完結したいと思っています。「ローカルからのクロスオリジンなajax」についても現時点の私の知識では意味を理解できないので少し調べさせてください。引き続きどうぞよろしくお願いいたします。
guest

回答2

0

ベストアンサー

機器上でプログラムを実行できるのであれば
サーバーサイドのプログラムでJSONを解析した上で
必要なデータを抽出して出力すればいいと思います。

機器はあくまでhttpベースでJSONを吐き出すことしかできないのであれば
代替用のhttpサーバー上で上記抽出機能を実装するか
ローカルPCにhtmlを起き、そこにajaxの処理を書き込んでおいて
JSONデータを受け、ローカル側で抽出処理をすることになります。
ローカルPCからajaxでデータを受けるにはクロスオリジンの設定(CORS)を
しておく必要があります

投稿2017/03/16 03:31

yambejp

総合スコア114771

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

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

MON5277

2017/03/16 03:42

機器は後者になりますので、今回の件ですと「ローカルサーバーにHTML」が必要なようですね。その先の内容について調べてみます。有料でお仕事をお願いしたいくらいですが、こちらではそういった事はダメなんですよね?
yambejp

2017/03/16 04:06 編集

ちょっと微妙なのはすでにその機器がhttpベースでjsonデータを返す 機能をもっているということです。 ということはapacheなどhttpデーモンが動いているかもしれないし 専用のツールがポート80に対する要求に回答しているのかもしれないです。 いずれにしろすでにポート80を専有されているのであれば、 別のhttpdをインストールすることは難しい(ポートを替えるなどで対応は可能)ので、 いま動いているサービスがなんなのかを調べる必要があるでしょう。 ・その機器のOSがなんなのか? ・その機器に対する機能(アプリ)追加が可能なのか? ・新たな機能を実装するスキルがある、もしくは外注できるのか? など詰めていくとよいでしょう
MON5277

2017/03/16 04:46 編集

そうなんですね。jsonを返す機能がある為に色々と調べる必要があるのですね。 - OSはおそらくlinuxだと思います。 - 機器へのアプリ追加ですが、本当は出来ないことはないと思うのですが、難しいと思います。 ちなみにyamabe.jpさんはこういった事をお仕事とされているのでしょうか? またお仕事を依頼することは可能なのでしょうか? もしここでのこの手の質問がルール違反ならすみません。
yambejp

2017/03/16 05:02

なるほど、だいたい状況がつかめました。 このサイト経由でのビジネス依頼は違反かどうかはよくわかりませんが わたしは本業はシステム屋ではないので責任をもった立場で お受けすることはできません。 でいりのITコンサルにお願いするか、新たにシステム屋さんに お願いするか、多少時間はかかっても自力でなんとかするかでしょうね 流れを見る限り、一番よいのはその機材自体はいじらないことです 別途一台Linuxサーバーを用意してユーザー・インタフェース(UI)する 変換用サーバーをたてるのが安全で楽ちんかもしれません。 状況的にラズパイが用意できるならそれでもいいでしょう。 自力でやる気があるなら、トラブった際には質問いただければ いろいろフォローはします
MON5277

2017/03/16 05:19

心強いお言葉、とても嬉しいです。 システム屋さんでは無いのに色々ご存じで凄いですね。試作段階ですのでそんなに責任という事でもありませんので是非ともお受けいただきたいです。 システム屋さんにお願いするのも手なのですが、ブラックボックスにされてしまいがちなので(^^;) ちなみにXMLでのデータ取得も可能なのですが、ajaxならxmlの方が加工がし易いとかあるのでしょうか? ラズパイは手元にあるので自由に使えますが、スキルがついてきておりません。 windowsPC内にwebサーバーを立てて、直接機器から得たjsonやxmlを画面表示ではなくて間にラズパイを挟むという事の目的は何になるのでしょうか?なんなら直接ラズパイで表示でも構わないのですが。
yambejp

2017/03/16 05:31

>ラズパイを挟むという事の目的 まず機器をいじるのは危険なので、仕様がわからないなら避けるべきというのが前提。 (本来なら機器側でそういう機能があるのが一番) すっきりするのはラズパイのWEBサーバーに入力フォームを実装し 条件を入力して決定(送信)したら機器にとりにいって、 その生データを元にラズパイでデータ抽出・変換してWEB上に表示する というのがベターですかね
MON5277

2017/03/16 05:39

そういうことですか。でも確かにそうですね。機器はそもそもWEBサーバー機能を持っているので、最小構成で機器にコードがうまく組めればPCからはブラウジングのみで済むということですよね。 初期化は簡単なのでそれも手ですが、使用状況としてはおっしゃるようにラズパイをサーバー化して画面表示がよさそうですね。ちなみにAPIリクエスト及び画面表示の更新タイミングは遅くとも5秒毎に更新したいと思っています。
MON5277

2017/03/17 00:35

本件、少し時間がかかりそうですので一旦解決済とさせていただきます。たいへん有用な情報ありがとうございました。また色々と課題が見えてきた時点で質問させていただくかもしれませんが、その際はどうぞよろしくお願いいたします。
guest

0

機器というのが具体的にどういうものをさすのかがわからないのですが、
機器にリクエストを送信するということはWebサーバーみないなものなのでしょうか。

LAN環境のホストPC/クライアントPC同士のデータ通信という認識であっているのであれば、
ホスト側の環境はわかりませんがXAMPPなどのパッケージを導入してWEBサーバ化してjsonファイルをおいてリクエストを送信すればいいと思いますが、見当違いなら申し訳ありません。

投稿2017/03/16 03:04

Neko_doshi

総合スコア214

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

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

MON5277

2017/03/16 03:27

回答ありがとうございます。 機器というのは具体的にはここで説明できないのですが、ご想像いただいた感じに近いと思います。 XAMPPをPCに導入、webサーバー化して機器にJSONファイルをリクエスト、PCで処理してPCに接続された画面にHTML画面表示 と読み替えて大丈夫でしょうか? まだPHPやWEBサーバーの仕組みについて勉強できていないのでXAMMPについて勉強します。 XAMMPというキーワードだけでもありがたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問