Created
December 1, 2011 01:42
-
-
Save smanek/1412652 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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