📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Video Tutorial
GSON Maven Dependency
<dependencies>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<scope>compile</scope>
</dependency>
</dependencies>
enum ProjectStatus {
NEW, OPEN, PROGRESS, HOLD, COMPLETED, CLOSED
}
class Project {
private int projectId;
private String projectName;
private String projectDesc;
private ProjectStatus projectStatus;
public Project(int projectId, String projectName, String projectDesc, ProjectStatus projectStatus) {
super();
this.projectId = projectId;
this.projectName = projectName;
this.projectDesc = projectDesc;
this.projectStatus = projectStatus;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectDesc() {
return projectDesc;
}
public void setProjectDesc(String projectDesc) {
this.projectDesc = projectDesc;
}
public ProjectStatus getProjectStatus() {
return projectStatus;
}
public void setProjectStatus(ProjectStatus projectStatus) {
this.projectStatus = projectStatus;
}
@Override
public String toString() {
return "Project [projectId=" + projectId + ", projectName=" + projectName + ", projectDesc=" + projectDesc +
", projectStatus=" + projectStatus + "]";
}
}
Serialize Enum Type
public class GSONEnumExamples {
public static void main(String[] args) {
serializeEnumGson();
}
public static void serializeEnumGson() {
Project project = new Project(100, "CMS", "Content Management System", ProjectStatus.NEW);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String result = gson.toJson(project);
System.out.println(result);
}
}
{
"projectId": 100,
"projectName": "CMS",
"projectDesc": "Content Management System",
"projectStatus": "NEW"
}
Deserialize Enum Type
public class GSONEnumExamples {
public static void main(String[] args) {
deserializeEnumGson();
}
public static void deserializeEnumGson() {
String input = "{\r\n" +
" \"projectId\": 100,\r\n" +
" \"projectName\": \"CMS\",\r\n" +
" \"projectDesc\": \"Content Management System\",\r\n" +
" \"projectStatus\": \"NEW\"\r\n" +
"}";
Gson gson = new GsonBuilder().create();
Project project = gson.fromJson(input, Project.class);
System.out.println(project.toString());
}
}
Project [projectId=100, projectName=CMS, projectDesc=Content Management System, projectStatus=NEW]
Complete Example for Reference
package net.javaguides.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GSONEnumExamples {
public static void main(String[] args) {
serializeEnumGson();
deserializeEnumGson();
}
public static void serializeEnumGson() {
Project project = new Project(100, "CMS", "Content Management System", ProjectStatus.NEW);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String result = gson.toJson(project);
System.out.println(result);
}
public static void deserializeEnumGson() {
String input = "{\r\n" +
" \"projectId\": 100,\r\n" +
" \"projectName\": \"CMS\",\r\n" +
" \"projectDesc\": \"Content Management System\",\r\n" +
" \"projectStatus\": \"NEW\"\r\n" +
"}";
Gson gson = new GsonBuilder().create();
Project project = gson.fromJson(input, Project.class);
System.out.println(project.toString());
}
}
enum ProjectStatus {
NEW,
OPEN,
PROGRESS,
HOLD,
COMPLETED,
CLOSED
}
class Project {
private int projectId;
private String projectName;
private String projectDesc;
private ProjectStatus projectStatus;
public Project(int projectId, String projectName, String projectDesc, ProjectStatus projectStatus) {
super();
this.projectId = projectId;
this.projectName = projectName;
this.projectDesc = projectDesc;
this.projectStatus = projectStatus;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectDesc() {
return projectDesc;
}
public void setProjectDesc(String projectDesc) {
this.projectDesc = projectDesc;
}
public ProjectStatus getProjectStatus() {
return projectStatus;
}
public void setProjectStatus(ProjectStatus projectStatus) {
this.projectStatus = projectStatus;
}
@Override
public String toString() {
return "Project [projectId=" + projectId + ", projectName=" + projectName + ", projectDesc=" + projectDesc +
", projectStatus=" + projectStatus + "]";
}
}
{
"projectId": 100,
"projectName": "CMS",
"projectDesc": "Content Management System",
"projectStatus": "NEW"
}
Project [projectId=100, projectName=CMS, projectDesc=Content Management System, projectStatus=NEW]
Serialize and Deserialize Enum using @SerializedName annotation
enum ProjectStatus {
@SerializedName("1")
NEW, @SerializedName("2")
OPEN, @SerializedName("3")
PROGRESS, @SerializedName("4")
HOLD, @SerializedName("5")
COMPLETED, @SerializedName("6")
CLOSED
}
package net.javaguides.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
public class GSONEnumExamples {
public static void main(String[] args) {
serializeEnumGson();
deserializeEnumGson();
}
public static void serializeEnumGson() {
Project project = new Project(100, "CMS", "Content Management System", ProjectStatus.NEW);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String result = gson.toJson(project);
System.out.println(result);
}
public static void deserializeEnumGson() {
String input = "{\r\n" + " \"projectId\": 100,\r\n" + " \"projectName\": \"CMS\",\r\n" +
" \"projectDesc\": \"Content Management System\",\r\n" + " \"projectStatus\": \"1\"\r\n" + "}";
Gson gson = new GsonBuilder().create();
Project project = gson.fromJson(input, Project.class);
System.out.println(project.toString());
}
}
enum ProjectStatus {
@SerializedName("1")
NEW, @SerializedName("2")
OPEN, @SerializedName("3")
PROGRESS, @SerializedName("4")
HOLD, @SerializedName("5")
COMPLETED, @SerializedName("6")
CLOSED
}
class Project {
private int projectId;
private String projectName;
private String projectDesc;
private ProjectStatus projectStatus;
public Project(int projectId, String projectName, String projectDesc, ProjectStatus projectStatus) {
super();
this.projectId = projectId;
this.projectName = projectName;
this.projectDesc = projectDesc;
this.projectStatus = projectStatus;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectDesc() {
return projectDesc;
}
public void setProjectDesc(String projectDesc) {
this.projectDesc = projectDesc;
}
public ProjectStatus getProjectStatus() {
return projectStatus;
}
public void setProjectStatus(ProjectStatus projectStatus) {
this.projectStatus = projectStatus;
}
@Override
public String toString() {
return "Project [projectId=" + projectId + ", projectName=" + projectName + ", projectDesc=" + projectDesc +
", projectStatus=" + projectStatus + "]";
}
}
{
"projectId": 100,
"projectName": "CMS",
"projectDesc": "Content Management System",
"projectStatus": "1"
}
Project [projectId=100, projectName=CMS, projectDesc=Content Management System, projectStatus=NEW]
Comments
Post a Comment
Leave Comment