![Lv.6 BodyParserでTextやXml、JsonやFormやMulti-partをパースできる。[play framework2.0] [java]](https://soylatte.jp/wp-content/themes/soy-magazine/assets/images/no-thumbnail.png)
body parserとは?
リクエストの中身をjavaで扱えるようにしてくれます。
Scalaの技術(Iteratee[Array[Byte])を使っているので、body parserをJavaで直接拡張すること
はできないそうです。
※json, xml, text, アップされたファイル用などほとんどのケースに対応できるparserがデフォルトで用意されています。
すべてplay.mvc.BodyParserに格納されています。
すべてplay.mvc.BodyParserに格納されています。
ただ、デフォルトでいろいろなbody parser※が用意されているので、
それをもとに新しいparserクラスを作ることはできるようです。
(一応動画に独自パーサーを載せました。非常に簡単なもの)
BodyParserの使い方
BodyParserを実装したクラスはplay.mvc.Http.RequestBodyを生成するparser(int maxLength)
メソッドを持っています。
直接parserメソッドをControllerから呼び出すのではなくて、request().body()を通してパースが
実行されます。
ControllerクラスまたはActionメソッドに@BodyParser.Of(Class)アノテーションを付けることで、
どのパーサーを使うか指定できます。
[java toolbar=”false”]
@BodyParser.Of(BodyParser.Json.class)
pulic static Result index() {
RequestBody body = request().body();
ok(“Got json: ” + body.asJson());
}[/java]
@BodyParser.Of(BodyParser.Json.class)
pulic static Result index() {
RequestBody body = request().body();
ok(“Got json: ” + body.asJson());
}[/java]
自分で作成したパーサーも指定できます。
[java toolbar=”false”]@BodyParser.Of(Lv6Parser.MyParser.class)[/java]
・今回のplay framework2.0の動画。