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

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

目次

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

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

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

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のライブラリです。

 

JSONデータ

{
    "test_id": "1",
    "test_name": "鈴木",
    "test_romaji": "suzuki"
}

Jsonのキーは、文字の区切りがアンダースコアのスネークケースになっています。

 

JSONデータを受けるJavaのクラス (SyainData.java)

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

package test1;

public class SyainData {

	private String testId;
	private String testName;
	private String testRomaji;

	public String getTestId() {
		return testId;
	}

	public String getTestName() {
		return testName;
	}

	public String getTestRomaji() {
		return testRomaji;
	}

	public void setTestId(String testId) {
		this.testId = testId;
	}

	public void setTestName(String testName) {
		this.testName = testName;
	}

	public void setTestRomaji(String testRomaji) {
		this.testRomaji = testRomaji;
	}
}

 

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

PropertyNamingStrategies.SNAKE_CASE

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

package test1;

import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;

public class SyainService {
	public static void main(String[] args) {
		String jsonData = 
		"{\"test_id\": \"1\",\"test_name\": \"鈴木\",\"test_romaji\": \"suzuki\"}";

		ObjectMapper mapper = new ObjectMapper();
		mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
		
		try {
			SyainData syain = mapper.readValue(jsonData, SyainData.class);

			System.out.println(syain.getTestId()); // 1
			System.out.println(syain.getTestName()); // 鈴木
			System.out.println(syain.getTestRomaji()); // suzuki

		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

15行目は、ObjectMapperクラスのsetPropertyNamingStrategyメソッドでSNAKE_CASEを指定しています。
18行目は、JSONデータをJavaのクラスにセットしています。

関連の記事

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

△上に戻る