「Java」オブジェクトからJSONに変換するサンプル
環境
Eclipse 2019-12
JDK1.8
説明
JSONを処理するライブラリでJavaのキャメルケースの項目を、JSONのスネークケースの項目に変換してセットします。
1.pom.xmlの定義
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
</dependencies>
<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.1</version> </dependency> </dependencies>
2.Userクラスの定義
package com.arkgame.study;
import java.util.List;
public class User {
//名前
private String username;
//年齢
private int age;
//属性リスト
private List<String> usLst;
/**
* @return username
*/
public String getUsername() {
return username;
}
/**
* @param username セットする username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age セットする age
*/
public void setAge(int age) {
this.age = age;
}
/**
* @return usLst
*/
public List<String> getUsLst() {
return usLst;
}
/**
* @param usLst セットする usLst
*/
public void setUsLst(List<String> usLst) {
this.usLst = usLst;
}
}
package com.arkgame.study;
import java.util.List;
public class User {
//名前
private String username;
//年齢
private int age;
//属性リスト
private List<String> usLst;
/**
* @return username
*/
public String getUsername() {
return username;
}
/**
* @param username セットする username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age セットする age
*/
public void setAge(int age) {
this.age = age;
}
/**
* @return usLst
*/
public List<String> getUsLst() {
return usLst;
}
/**
* @param usLst セットする usLst
*/
public void setUsLst(List<String> usLst) {
this.usLst = usLst;
}
}
package com.arkgame.study; import java.util.List; public class User { //名前 private String username; //年齢 private int age; //属性リスト private List<String> usLst; /** * @return username */ public String getUsername() { return username; } /** * @param username セットする username */ public void setUsername(String username) { this.username = username; } /** * @return age */ public int getAge() { return age; } /** * @param age セットする age */ public void setAge(int age) { this.age = age; } /** * @return usLst */ public List<String> getUsLst() { return usLst; } /** * @param usLst セットする usLst */ public void setUsLst(List<String> usLst) { this.usLst = usLst; } }
3.オブジェクトからJSONに変換
package com.arkgame.study;
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 UserJson {
public static void main(String[] args) {
//オブジェクトのインスタンスを生成
User user = new User();
//名前を設定
user.setUsername("yAmada");
//年齢を設定
user.setAge(32);
//オブジェクトのリストの値を設定
List<String> uLst = new ArrayList<>();
uLst.add("SE");
uLst.add("東京");
uLst.add("大学");
user.setUsLst(uLst);
ObjectMapper mapper = new ObjectMapper();
// スネークケースを指定
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
String result = null;
try {
// オブジェクトからString型のデータに変換
result = mapper.writeValueAsString(user);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println("JavaオブジェクトからJSONに変換する結果");
System.out.println(result);
}
}
package com.arkgame.study;
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 UserJson {
public static void main(String[] args) {
//オブジェクトのインスタンスを生成
User user = new User();
//名前を設定
user.setUsername("yAmada");
//年齢を設定
user.setAge(32);
//オブジェクトのリストの値を設定
List<String> uLst = new ArrayList<>();
uLst.add("SE");
uLst.add("東京");
uLst.add("大学");
user.setUsLst(uLst);
ObjectMapper mapper = new ObjectMapper();
// スネークケースを指定
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
String result = null;
try {
// オブジェクトからString型のデータに変換
result = mapper.writeValueAsString(user);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println("JavaオブジェクトからJSONに変換する結果");
System.out.println(result);
}
}
package com.arkgame.study; 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 UserJson { public static void main(String[] args) { //オブジェクトのインスタンスを生成 User user = new User(); //名前を設定 user.setUsername("yAmada"); //年齢を設定 user.setAge(32); //オブジェクトのリストの値を設定 List<String> uLst = new ArrayList<>(); uLst.add("SE"); uLst.add("東京"); uLst.add("大学"); user.setUsLst(uLst); ObjectMapper mapper = new ObjectMapper(); // スネークケースを指定 mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); String result = null; try { // オブジェクトからString型のデータに変換 result = mapper.writeValueAsString(user); } catch (JsonProcessingException e) { e.printStackTrace(); } System.out.println("JavaオブジェクトからJSONに変換する結果"); System.out.println(result); } }
4.実行結果
JavaオブジェクトからJSONに変換する結果
{“username":"yAmada","age":32,"us_lst":[“SE","東京","大学"]}