Java JSON响应中属性的自有特定名称

Java JSON响应中属性的自有特定名称,java,spring,rest,Java,Spring,Rest,我正在使用Spring和java1.7使用REST 我在模型课上做了以下练习: private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } 我的控制器映射到GET/person/info API。因此,控制器获取名称并将其显示为JSON响应 这是控制器: import org.springframewo

我正在使用Spring和java1.7使用REST

我在模型课上做了以下练习:

private String name;
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
我的控制器映射到GET/person/info API。因此,控制器获取名称并将其显示为JSON响应

这是控制器:

 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;

@RequestMapping(value = "persons/info", method = RequestMethod.POST, consumes="application/json", produces="application/json")
public ResponseEntity<String> getPersonInfo(@RequestBody String body) throws Exception {    
    String personInfo = null;

    MyServiceJson myServiceJson = MyServiceJsonFactory.getMyServiceObject(body);

    personInfo = myService.getPersonInfo(myServiceJson);

    HttpHeaders responseHeader = new HttpHeaders();
    return Util.getResponse(personInfo, responseHeader, HttpStatus.OK);
}
这里的问题是,此名称字符串必须是personName,如下所示:

{"name":"Jack"}
{"PersonName":"Jack"}
我相信它是从模型中获取变量名并按原样发送。有谁能告诉我,在REST服务中,是否可以使用不同的属性名作为“PersonName”,并进行一些注释更改

如果有人能给我点启示我会很感激的


谢谢

如果您正在使用Jackson库,我想您可以这样做:

@JsonProperty("PersonName")
public String getName() {
    return name;
}

我需要在我声明name variable的方法名或变量名上方添加此注释吗?我过去常常在声明变量之前添加注释,但我认为这两种方法都有效。不知何故,它对我不起作用。我仍然只得到名字而不是人名??我还需要改变什么吗?我在回复中还有其他属性吗?是否需要将此注释添加到每个标签中?您使用的Spring/Jackson版本是什么?我没有什么特别的事情要做,但这个话题可以解释你的问题: