Java キャメルケースをJsonのスネークケースに変換

JavaのオブジェクトのキャメルケースをJacksonのライブラリでスネークケースに変換するサンプルです。(確認環境:JDK 11)

目次

サンプル キャメルケースをJsonのスネークケースに変換
  pom.xml
  Javaのクラス (SyainData .java)
  JavaオブジェクトからJSONに変換するクラス (SyainService .java)

キャメルケースをJsonのスネークケースに変換

JavaのJackson(JSONを処理するライブラリ)で、Javaのキャメルケースの項目を、JSONのスネークケースの項目に変換してセットします。

pom.xml

  <dependencies>
	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>2.13.1</version>
	</dependency>
</dependencies>

Jacksonのライブラリです。

 

Javaのクラス (SyainData.java)

7-9行目は、キャメルケースです。最初の単語が小文字で次の単語の先頭が大文字です。

package test1;

import java.util.List;

public class SyainData {

	private String testId;
	private String testRomaji;
	private List<String> testSikaku;
	
	public String getTestId() {
		return testId;
	}
	public String getTestRomaji() {
		return testRomaji;
	}
	public List<String> getTestSikaku() {
		return testSikaku;
	}
	public void setTestId(String testId) {
		this.testId = testId;
	}
	public void setTestRomaji(String testRomaji) {
		this.testRomaji = testRomaji;
	}
	public void setTestSikaku(List<String> testSikaku) {
		this.testSikaku = testSikaku;
	}
}

 

JavaオブジェクトからJSONに変換するクラス (SyainService .java)

PropertyNamingStrategies.SNAKE_CASE

ObjectMapperクラスのsetPropertyNamingStrategyメソッドでスネークケースを指定します。

package test1;

import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;

public class SyainService {
	public static void main(String[] args) {
		SyainData syainData1 = new SyainData();
		syainData1.setTestId("1");
		syainData1.setTestRomaji("suzuki");
		List<String> sikaku1 = new ArrayList<>();
		sikaku1.add("基本");
		sikaku1.add("応用");
		syainData1.setTestSikaku(sikaku1);

		ObjectMapper mapper = new ObjectMapper();
		mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);

		String jsonData = null;
		try {
			jsonData = mapper.writeValueAsString(syainData1);
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
		System.out.println(jsonData);
		//{"test_id":"1","test_romaji":"suzuki","test_sikaku":["基本","応用"]}
	}
}

20行目は、ObjectMapperクラスのsetPropertyNamingStrategyメソッドでSNAKE_CASEを指定しています。
24行目は、JavaのオブジェクトからString型のデータに変換しています。
28行目のJSONのキーの項目はスネークケースになっています。

関連の記事

Java JacksonでJSONとオブジェクトを変換

△上に戻る