JSONにするために使ったメソッド
sevialize()
form内の要素を文字列データにシリアライズするメソッド。
servializeArray()
FormやElementをJSON形式のデータ構造でシリアライズするメソッド。
stringify()
javascriptの値をJSON文字列に変換するメソッド。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>to json sample</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> </head> <body> <form action="/login" id="loginForm"> <p>email:<input type="text" name="email" /></p> <p>pass:<input type="text" name="password" /></p> <input type="button" value="login" id="btn"> </form> <script type="text/javascript"> $('#btn').click(function() { var $form = $('#loginForm'); var data = $form.serializeArray(); //formをJSON構造でシリアライズ data = parseJson(data); $.ajax({ type:'POST', url:'/salt/login', data:JSON.stringify(data), //JSONに変換 scriptCharset:'utf-8', contentType:'application/json; charset=utf-8', dataType:'json' }).done(function(data) { next(data); }); }); var parseJson = function(data) { var returnJson = {}; for (idx = 0; idx < data.length; idx++) { returnJson[data[idx].name] = data[idx].value; } return returnJson; }; function next(response){ window.location.href = response.url; }; </script> </body> </html>
JavaでYAMLファイルを読み込む際に出たエラー
エラー
Exception java.io.IOException: Stream closed at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200) at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60) at org.yaml.snakeyaml.Yaml.load(Yaml.java:381) at io.dropwizard.Application.run(Application.java:79) at com.midcareer.user.MidUserApplication.main(MidUserApplication.java:120) Caused by: org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed at java.io.PushbackInputStream.ensureOpen(PushbackInputStream.java:74) at java.io.PushbackInputStream.read(PushbackInputStream.java:166) at org.yaml.snakeyaml.reader.UnicodeReader.init(UnicodeReader.java:90) at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:122) at java.io.Reader.read(Reader.java:140) at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)
んんー。ストリームが閉じてる感じではないんだよなあ。
そもそもファイルパスが違うのか?
よくわからず調べまくる。
解決
yamlファイルに、javaのオブジェクトにマッピングするパスを書き込む必要があったみたい。
!!com.saple.service.User #ここを追加 name: naaaaaaa emal: sample@gmal.com
Java ストリーム
ストリームとは
Javaでは、ファイルとデータのやり取りをする場合(データの入出力)、ストリームという考え方を使って行う。
ストリームとは、ファイルの読み書きや書き出しにおけるデータの流れのこと。
データがファイルとプログラムの間を流れていくイメージ。
処理の流れ
データを流すためのストリーム(川)を用意
ファイルからプログラムorプログラムからファイルへデータを流す
ストリームを閉じる
この処理をオブジェクトが仲介役となってデータのやり取りを助けている。
ストリームの種類
入力ストリーム:ファイルやネットワークからデータを受け取る
出力ストリーム:ファイルやネットワークにデータを送り出す
バイトストリーム:バイト単位(バイナリ)でデータを扱う
InputStream/OutputStreamクラス(スーパークラス)
ex) 画像データ文字ストリーム:文字単位でデータを扱う
Reader/Writeクラス(スーパークラス)
ex)テキスト
バッファ
データを一時的に記憶する場所。 これを使うことで、ファイルにいちいちアクセスしなくても、一気にデータを読み込んで溜め込むことができる
S3・CloudFront
S3とは
AWSの中核にあるストレージサービス。
ストレージとは
訳すと貯蔵、保管。
データを保管・保存する場所のこと。
ストレージサービスとは
インターネット上で、ファイル保管用のスペースにデータを保存することができるサービス。
インターネット上にデータを保存できる場所があるってことですかね?
CloudFront
AWSが提供する高速・高パフォーマンスなコンテンツ配信サービス。
CloudFrontの仕組み
オリジンサーバ:配信するオリジナルのファイルを置いておくサーバ。
エッジサーバ:ユーザーへの配信を行うサーバ。
ユーザーをCloudFrontドメインへアクセスさせて、CloudFrontのエッジサーバを経由した配信を行えるようになる。
ユーザーからリクエストを受けたエッジサーバーは、要求されたファイルがキャッシュされているか確認する。
キャッシュされてない
→オリジンサーバからファイルをとって、そのファイルをユーザーに配信する。
ファイルをキャッシュする。
キャッシュされている
→オリジンサーバには見に行かず、エッジサーバでキャッシュされたファイルを配信する。