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のキーの項目はスネークケースになっています。
関連の記事