title: Convert a object into JSON in REST service by Spring MVC
body: <p>I'm trying to create a REST service using Spring MVC and it's working if I'm returning a plain string. My requirement is to return a JSON string of the Java object. Don't know how to achieve this by implicit conversion.</p>
  
  <p>Here is my code:</p>
  
  <p><strong>StudentService.java</strong></p>
  
  <pre><code>package com.spring.schoolmanagement.service;
  
  import java.util.List;
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Controller;
  import org.springframework.web.bind.annotation.PathVariable;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import org.springframework.web.bind.annotation.ResponseBody;
  
  import com.spring.schoolmanagement.dao.CourseDAOImpl;
  import com.spring.schoolmanagement.dao.StateDAOImpl;
  import com.spring.schoolmanagement.dao.StudentDAOImpl;
  import com.spring.schoolmanagement.model.Student;
  
  @Controller
  @RequestMapping("/rest/student")
  public class StudentService {
  
      @Autowired
      private CourseDAOImpl courseService;
      @Autowired
      private StudentDAOImpl studentService;
      @Autowired
      private StateDAOImpl stateService;
  
  
      @RequestMapping(value = "/{id}", method = RequestMethod.GET, headers = "Accept=*/*")
      @ResponseBody
      public Student home(@PathVariable int id) {
          return this.studentService.getById(id);
      }
  
      @RequestMapping(method = RequestMethod.GET, headers = "Accept=*/*")
      @ResponseBody
      public List&lt;Student&gt; getAll() throws Exception {
          return this.studentService.getAll();
      }
  
      @RequestMapping(value = "/test", method = RequestMethod.GET, headers = "Accept=*/*")
      @ResponseBody
      public String test() {
          return "Test REST Service!!!";
      }
  }
  </code></pre>
  
  <p><strong>Student.java</strong></p>
  
  <pre><code>package com.spring.schoolmanagement.model;
  
  import java.util.Date;
  
  import javax.validation.constraints.Size;
  
  import org.hibernate.validator.constraints.Email;
  import org.hibernate.validator.constraints.NotEmpty;
  import org.springframework.format.annotation.DateTimeFormat;
  
  public class Student extends Contact{
      private int id;
  
      @NotEmpty
      @Size(max = 30)
      private String firstName, lastName;
      //private String lastName;
  
      @DateTimeFormat(pattern="MM/dd/yyyy")
      private Date DOB, DOA;
      //private Date DOA;
  
      @NotEmpty
      @Email
      private String email;
      private String password;
      private int courseID;
      private String courseName;
  
      public int getId() {
          return id;
      }
      public void setId(int id) {
          this.id = id;
      }
      public String getFirstName() {
          return firstName;
      }
      public void setFirstName(String firstName) {
          this.firstName = firstName;
      }
      public String getLastName() {
          return lastName;
      }
      public void setLastName(String lastName) {
          this.lastName = lastName;
      }
      public Date getDOB() {
          return DOB;
      }
      public void setDOB(Date dOB) {
          DOB = dOB;
      }
      public Date getDOA() {
          return DOA;
      }
      public void setDOA(Date dOA) {
          DOA = dOA;
      }
      public String getEmail() {
          return email;
      }
      public void setEmail(String email) {
          this.email = email;
      }
      public String getPassword() {
          return password;
      }
      public void setPassword(String password) {
          this.password = password;
      }
      public int getCourseID() {
          return courseID;
      }
      public void setCourseID(int courseID) {
          this.courseID = courseID;
      }
      public String getCourseName() {
          return courseName;
      }
      public void setCourseName(String courseName) {
          this.courseName = courseName;
      }
  }
  </code></pre>
  
  
  
  <p>Here <strong><a href="http://localhost:8080/schoolmangement/rest/student/test" rel="noreferrer">http://localhost:8080/schoolmangement/rest/student/test</a></strong> URL is returning "Test REST Service!!!"</p>
  
  <p>But, <strong><a href="http://localhost:8080/schoolmangement/rest/student/1" rel="noreferrer">http://localhost:8080/schoolmangement/rest/student/1</a></strong> URL throwing HTTP Status code 406 with error message:</p>
  
  <p><strong><em>The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.</em></strong></p>