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のクラスにセットしています。
関連の記事