Symfoware

Symfowareについての考察blog

java 8 jjsスクリプト http接続とjsonデータのデコード

java8から搭載されたjjsスクリプトを試しています。
OpenJDK 8 jjsコマンドでJavaScriptを実行する

http接続を実行し、json形式のデータを取得。
取得したjsonデータをパースし、表示してみます。


サーバー側のソース



phpで適当にJSONデータを返却するプログラムを準備しておきました。

・sample.php


  1. <?php
  2. $t = [
  3.     'a' => '日本語',
  4.     'b' => 'テストです',
  5.     'c' => [
  6.         'c-1' => 'テスト1',
  7.         'c-2' => 'テスト2',
  8.         'c-3' => 'テスト3',
  9.     ],
  10. ];
  11. echo json_encode($t);




アクセスすると、こんな表示になります。

725_01.png





jjsスクリプト




java.net.URLを使用してサーバー側のリソースを取得。
JavaでのHttpClientサンプル

JSON.parseで取得したjsonな文字列をデコードします。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON



・sample.js


  1. // サーバーからデータを取得
  2. var url = new java.net.URL('http://192.168.1.103/sample.php')
  3. var con = url.openConnection()
  4. con.setRequestMethod("GET")
  5. // 取得したデータを文字列として取得
  6. var isr = new java.io.InputStreamReader(con.getInputStream(), java.nio.charset.StandardCharsets.UTF_8)
  7. var reader = new java.io.BufferedReader(isr)
  8. var json_value = ''
  9. while ((line = reader.readLine()) != null) {
  10.     json_value += line
  11. }
  12. // 文字列からオブジェクトに変換し表示
  13. var json = JSON.parse(json_value)
  14. print(json['a'])
  15. print(json['b'])
  16. print(json['c'])
  17. print(json['c']['c-1'])
  18. print(json['c']['c-2'])
  19. print(json['c']['c-3'])




ちゃんとJSON形式の文字列が連想配列に変換できたようです。


$ jjs sample.js
日本語
テストです
[object Object]
テスト1
テスト2
テスト3





【参考URL】

JavaでのHttpClientサンプル

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2017/01/15(日) 21:27:59|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<java 8 jjsスクリプト sshトンネルを経由し、MariaDBのデータを取得する | ホーム | java 8 jjsスクリプト JDBCドライバを使用してデータベースに接続する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1946-66a1d4af
この記事にトラックバックする(FC2ブログユーザー)