開発チーム(s.w)こんにちは。11月になりだいぶ寒くなってきました。冷えがなんだか腰にくるようになりました。タグボート開発メンバーのワシヅカです。今日は、SpringBootでjson形式のデータを返却する実装をご紹介したいと思います。今回の開発でSpringBootは初めて触ったのですが、びっくりするほど簡単に実装できてしました。思わず「おぉ!」感動してしまいましたので、ぜひお試しいただければと思います。Controllerクラスと、Entityクラスの実装を載せて解説したいと思います。必要な実装は、Controllerクラスと、Entityクラスの2つだけです。Viewとなる(templateとなる)、「htmlファイル」については作成する必要はありません。Jacksonというライブラリを使用しているので、eclipseを使用している場合は、「Maven依存関係」の中のライブラリにjackson-databindjackson-annotationsjackson-coreがあることを確認して下さい。紹介する処理の流れ細かい実装のお話をする前に、まずは大まかな処理の流れを説明します。大きな流れとしては、Controller→Service→Repository→Entityの流れでデータを取得し、Controllerまでデータ(Entity)を返していきます。ServiceクラスとRepositoryクラスについては今回割愛していますが、JPAを使ってデータを取得するためのサービスを作っています。Controllerクラスの実装では、まずはControllerクラスの解説です。Controllerクラスのポイントは3つです。OKステータスとともに2.で指定した戻り値の型を返却するです。他の部分は、通常のSpringBootの実装と同じと考えて良いと思います。これだけのポイントで、Entityクラスをjson形式に変換してレスポンスを返してくれます。(※下に記載している実装は、一部省略しています。続いて、コントローラーで返却しているEntityクラスです。こちらのポイントは2つ。@JsonFormatアノテーション@JsonIgnoreアノテーションです。@JsonFormatアノテーションは出力したいフォーマットに変換して、出力してくれます。Date型の場合、フォーマットを介して返却しないと、「Datetime”:1510298993000」のようにlong型で返却されてしまいます。@JsonIgnoreアノテーションを設定すると、Json出力の対象外となります。(※下に記載している実装は、一部省略しています。継承しているBaseEntityのプロパティー(deleteflgなど)も、しっかりjson形式で出力できました。レスポンスヘッダのContent-Typeもしっかり「application/json」となっています。07:29:00","memo":"","statusid":2,"createDatetime":1510298993000}まとめ以上のような実装で簡単にjson形式で返却することができました。Controllerクラスの実装とほんの少しの修正をEntityに施すだけで良いというのは本当に便利です。Entityクラスに設定したJackson用の「@JsonFormat」のようなアノテーションは他にも種類があるようですので調べておこうと思います。実際試していないのですが、Controllerの戻り値の型をList<Entity>のようなリスト形式にしてもjson形式に自動変換してで返却できるようです。この件については、試したら追記しようと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。