読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

Play2.3でjsonを使うときのチェック

Play Framework Java

スポンサードリンク

f:id:aipacommander:20150222095455p:plain


別にPlay2.3じゃなくてもいいと思うけども、メモ




Jsonのエラーがめんどかったので、チェックを2つ入れました。


異論は認める。

public static Result add() {
	// 情報をjsonで受け取る
	JsonNode jsonNode = request().body().asJson();

	// 値が入っていないデータなら400エラー
	if (jsonNode.isNull()) {
		return badRequest("400 Bad Request");
	}

	// jsonの形を確認。おかしいなら400エラー
	if (!jsonNode.has("first") || !jsonNode.has("secode")) {
		return badRequest("400 Bad Request");
	}

	// Jsonをパース
	// なぜか知らないけど、うまくObjectで取得できないので置換する。
	String jsonString = jsonNode.get("text").toString().replace("\"", "");

	// 〜 省略 〜
	return ok("返却するメッセージ");
}


この.has()ってのが結構便利ですね。事前に値が確認できるので。


入っているでしょ? って、思い込んでしまうとjsonNode.get("")で大変なことになるので、こういうメソッドがあって助かった( ´ー`)フゥー


しかし、自分でも思う。これは多分ダメだと。

if (!jsonNode.has("first") || !jsonNode.has("secode")) {


この書き方はまずいな。JsonのKey(?っていうのかね?)が、増えれば増えるほど、if文が長くなる。これはNGだ。


他に良い方法があれば、ご教授願いたい。m(_ _ )m