今回は、ObjectMapperを利用すると、JavaBeanオブジェクトとJSON文字列の変換が簡単に行えることがわかったので、そのサンプルプログラムを共有する。
JSONの形式については、以下のサイトを参照のこと。
https://www.sejuku.net/blog/80617
前提条件
下記記事の「IntelliJ IDEA上でSpring Bootプロジェクトの読み込み」まで完了していること。
IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...
サンプルプログラムの内容
作成したサンプルプログラムの構成は以下の通り。

なお、上記の赤枠のうち、「build.gradle」は今回変更したプログラムで、他は新規で作成したプログラムとなる。
「build.gradle」の内容は以下の通り。lombokとObjectMapperを利用できるような設定を追加している。
plugins {
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//lombokを利用するための設定
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
//ObjectMapperを利用するための設定
compile 'com.fasterxml.jackson.core:jackson-databind:2.3.4'
}
また、DemoFormオブジェクトの内容は以下の通り。lombokを利用したJavaBeansになっている。
package com.example.demo;
import lombok.Data;
@Data
public class DemoForm {
/** ID */
private String id;
/** 名前 */
private String name;
/** 生年月日_年 */
private String birthYear;
/** 生年月日_月 */
private String birthMonth;
/** 生年月日_日 */
private String birthDay;
/** 性別 */
private String sex;
/** メモ */
private String memo;
}
「DesignEvo」は多くのテンプレートからロゴを簡単に作成できるツールだった多くのテンプレートが用意されていてロゴを簡単に作成できるツールの一つに、「DesignEvo」があります。今回は、「DesignEvo」...
さらに、DemoMainクラスの内容は以下の通り。ObjectMapperクラスのwriteValueAsStringメソッドで、JavaBeanオブジェクトをJSON文字列に変換し、ObjectMapperクラスのreadValueメソッドで、JSON文字列をJavaBeanオブジェクトに変換している。
package com.example.demo;
import com.fasterxml.jackson.databind.ObjectMapper;
public class DemoMain {
public static void main(String[] args){
// JavaBeanオブジェクト(DemoForm)を生成する
DemoForm demoForm = createDemoForm();
System.out.println("変換前DemoForm : " + demoForm.toString());
// JavaBeanオブジェクトとJSONで変換するObjectMapperを生成
ObjectMapper objectMapper = new ObjectMapper();
try{
// JavaBeanオブジェクト(DemoForm)をJSON文字列に変換する
String jsonStr = objectMapper.writeValueAsString(demoForm);
System.out.println("変換後JSON : " + jsonStr);
// JSON文字列をJavaBeanオブジェクト(DemoForm)に変換する
DemoForm afterDemoForm = objectMapper.readValue(jsonStr, DemoForm.class);
System.out.println("変換後DemoForm : " + afterDemoForm.toString());
}catch (Exception e){
System.err.println(e);
}
}
// DemoFormオブジェクトを生成
private static DemoForm createDemoForm(){
DemoForm demoForm = new DemoForm();
demoForm.setId("1");
demoForm.setName("テスト プリン");
demoForm.setBirthYear("2012");
demoForm.setBirthMonth("1");
demoForm.setBirthDay("15");
demoForm.setSex("2");
demoForm.setMemo("登録用メモ");
return demoForm;
}
}
「DemoMain.java」の実行結果は以下の通りで、JavaBeanオブジェクトとJSON文字列の変換が行われていることが確認できる。

要点まとめ
- ObjectMapperクラスのwriteValueAsStringメソッドで、JavaBeanオブジェクトをJSON文字列に変換できる。
- ObjectMapperクラスのreadValueメソッドで、JSON文字列をJavaBeanオブジェクトに変換できる。





