Java JSON响应中属性的自有特定名称
我正在使用Spring和java1.7使用REST 我在模型课上做了以下练习: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
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版本是什么?我没有什么特别的事情要做,但这个话题可以解释你的问题: