Skip to content

Instantly share code, notes, and snippets.

@smanek
Created December 1, 2011 01:42
Show Gist options
  • Save smanek/1412652 to your computer and use it in GitHub Desktop.
Save smanek/1412652 to your computer and use it in GitHub Desktop.
package com.arantaday.json;
import org.codehaus.jackson.map.ObjectMapper;
import java.io.IOException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
public class SimpleJson {
public static enum Department {
COMPUTER_SCIENCE("CS"),
ENGLISH("ENG"),
MATH("MATH");
private final String shortName;
private Department(String shortName) {
this.shortName = shortName;
}
public String getShortName() {
return shortName;
}
}
public static class Course {
private Department department;
private String vanityName;
private long courseNumber;
public Course() {
}
public Course(String vanityName, Department department, long courseNumber) {
this.vanityName = vanityName;
this.department = department;
this.courseNumber = courseNumber;
}
public String getVanityName() {
return vanityName;
}
public void setVanityName(String vanityName) {
this.vanityName = vanityName;
}
public long getCourseNumber() {
return courseNumber;
}
public void setCourseNumber(long courseNumber) {
this.courseNumber = courseNumber;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
@Override
public String toString() {
return "Course{" +
"department=" + department +
", vanityName='" + vanityName + '\'' +
", courseNumber=" + courseNumber +
'}';
}
}
public static class Student {
private String name;
private Date dateOfBirth;
private boolean enrolled;
private List<Course> courses;
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public boolean isEnrolled() {
return enrolled;
}
public void setEnrolled(boolean enrolled) {
this.enrolled = enrolled;
}
public List<Course> getCourses() {
return courses;
}
public void setCourses(List<Course> courses) {
this.courses = courses;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", dateOfBirth=" + dateOfBirth +
", enrolled=" + enrolled +
", courses=" + courses +
'}';
}
}
private static final ObjectMapper MAPPER = new ObjectMapper();
public static void main(String[] args) throws IOException {
// create a student
final Student student = new Student();
student.setName("John Doe");
student.setDateOfBirth(new Date());
student.setEnrolled(true);
final List<Course> courses = new LinkedList<Course>();
courses.add(new Course("Intro to Typing", Department.COMPUTER_SCIENCE, 101));
courses.add(new Course("Postmodern Deconstructionism", Department.ENGLISH, 201));
courses.add(new Course("Remedial Galois Field Arithmetic", Department.MATH, 51));
student.setCourses(courses);
System.out.printf("The original student object is: '%s'%n", student);
// serialize the student to a JSON object
final String serialzed = MAPPER.writeValueAsString(student);
System.out.printf("The serialized student is: '%s'%n", serialzed);
// parse the JSON back into a Java object
final Student deserializedStudent = MAPPER.readValue(serialzed, Student.class);
System.out.printf("The deserialized student object is: '%s'%n", deserializedStudent);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment