How to rename json objects(variables) name in spring boot
<p>Hello  I am new to spring boot and JSON and need help in renaming the variable name coming in response.</p>

<p>Consider this as a input</p>

<pre><code>   "1":    {
      "id": "1",
      "firstName": "Cdgdghirayu",
      "lastName": "Sinfsdgdgghvi",
      "age": 23
   }
</code></pre>

<p>Now in respone I need in this format</p>

<pre><code>   "1":    {
      "Roll number": "1",
      "firstName": "Cdgdghirayu",
      "lastName": "Sinfsdgdgghvi",
      "age": 23
   }
</code></pre>

<p>can we map <code>"id"</code> to <code>"roll number"</code> in some way?
How to achieve this in spring-boot?</p>

<p>Thanks in advance</p>

<p>upadte-
This is my model class</p>

<pre><code>package model;

import javax.xml.bind.annotation.XmlRootElement;
import com.fasterxml.jackson.annotation.JsonProperty;

@XmlRootElement
public class Person {
@JsonProperty("Roll Number")
private String id;

private String firstName;
private String lastName;
private int age;

public Person() {
    super();
}

public Person(String id, String firstName, String lastName, int age) {
    super();
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
}

public String getId() {
    return id;
}

public void setId(String 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 int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}
}
</code></pre>

<p>This is my service class
Here in addPerson() function I have to set id as its taking id as null..</p>

<pre><code>package service;

import java.util.Hashtable;
import org.springframework.stereotype.Service;
import model.Person;

@Service
public class PersonService {
    Hashtable&lt;String,Person&gt; persons=new Hashtable&lt;String,Person&gt;();
    public PersonService(){
    Person p=new Person();
    p.setId("1");
    p.setFirstName("Chirayu");
    p.setLastName("Singhvi");
    p.setAge(23);
    persons.put("1",p);

    p=new Person();
    p.setId("2");
    p.setFirstName("Himanshu");
    p.setLastName("Singhvi");  
    p.setAge(20);
    persons.put("2",p);
    }

    public Person getPerson(String id){
    if(persons.containsKey(id))
    return persons.get(id);
    else return null;
    }

    public Hashtable&lt;String,Person&gt; getAll(){
    return persons;
    }

    public Person addPerson(Person person){
    persons.put(person.getId(),person);

    return person;
}

    public Person updatePerson(Person person){
    if(person.getId().equals("0")){
    return null;
    }
    persons.put(person.getId(),person);
    return person;
}

    public Person removePerson(String id) {
    return persons.remove(id);
    }
</code></pre>

<p>My controller class</p>

<pre><code>package controller;

import java.util.Hashtable;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import model.Person;
import service.PersonService;

@RestController
@RequestMapping("/persons")
public class PersonController {
    static final Logger log = Logger.getLogger(PersonController.class.getName());

    PersonController(){
    log.info("entering controller class");
    }

    @Autowired
    PersonService personService;

    @RequestMapping("/all")
    public Hashtable&lt;String,Person&gt; getAll(){
    log.info("getting all  person details");
    System.out.println("syso is working");
    return personService.getAll();
    }

    @RequestMapping(value="/all",method=RequestMethod.POST,
            produces=MediaType.APPLICATION_JSON_VALUE,
            consumes=MediaType.APPLICATION_JSON_VALUE )
    @ResponseBody
    public Person addPerson(@RequestBody Person person){
    log.info("Adding person with id "+person.getId());
    person.getId();
    return personService.addPerson(person);
    }

    @RequestMapping(value="/{id}",method=RequestMethod.PUT,
            produces=MediaType.APPLICATION_JSON_VALUE,
            consumes=MediaType.APPLICATION_JSON_VALUE )
    @ResponseBody
    public Person updatePerson(@PathVariable("id") String id, 
            @RequestBody Person person){
    person.setId(id);

    log.info("Updating a partcular person details  with id "+id);
    return personService.updatePerson(person);
    }

    @RequestMapping(value="/{id}",method=RequestMethod.DELETE)
    public void removePerson(@PathVariable("id") String id){
     log.info("Removing the person details with id "+id);
     personService.removePerson(id);
    }

    @RequestMapping("/{id}")
    public Person getPerson(@PathVariable("id") String id){
    log.info("getting person details with id "+id);
    return personService.getPerson(id);
    }

    public void setDthDao(PersonService dao) {//for testing purpose
    personService=dao;
    }
</code></pre>

<p>Now in SOAPUI testing(writing text as snapshots are not uploading)</p>

<p>for GET request  : endpoint-<a href="http://localhost:8080" rel="noreferrer">http://localhost:8080</a> :Resource-/persons/all</p>

<p>response-</p>

<pre><code>{
   "2": {
      "firstName": "Himanshu",
      "lastName": "Singhvi",
      "age": 20,
      "Roll Number": "2"
   },
   "1": {
      "firstName": "Chirayu",
      "lastName": "Singhvi",
      "age": 23,
      "Roll Number": "1"
   }
}
</code></pre>

<p>Now for Post- : endpoint-<a href="http://localhost:8080" rel="noreferrer">http://localhost:8080</a> :Resource-/persons/all</p>

<p>Mediatype-</p>

<pre><code>{
  "firstName": "Rahul",
  "lastName": "Jain",
  "age": 23,
  "id": "6"
}
</code></pre>

<p>Response what I am getting</p>

<pre><code>{
   "timestamp": 1469790685110,
   "status": 500,
   "error": "Internal Server Error",
   "exception": "java.lang.NullPointerException",
   "message": "No message available",
   "path": "/persons/all"
}
</code></pre>

<p>Response that I want</p>

<pre><code>{
   "firstName": "Rahul",
   "lastName": "Jain",
   "age": 23,
   "Roll number": "6"
}
</code></pre>