Java 更改REST API响应中的字段名
嗨,我是个新手,所以我可能不懂高级解决方案 说到这里,我想发送一个RESTAPI响应。基本上,我从一个方法返回一个对象,然后这些对象的字段及其相应的值显示在API响应中 为了清楚起见,让我们假设我们有一个定义为Java 更改REST API响应中的字段名,java,json,spring,rest,spring-mvc,Java,Json,Spring,Rest,Spring Mvc,嗨,我是个新手,所以我可能不懂高级解决方案 说到这里,我想发送一个RESTAPI响应。基本上,我从一个方法返回一个对象,然后这些对象的字段及其相应的值显示在API响应中 为了清楚起见,让我们假设我们有一个定义为 Class Sample { String fruit; int cost; } 现在让我们假设我们有一个以上类示例abc的对象。 我们还有一个方法如下: @RequestMapping(/inventory) public Sample getInventory()
Class Sample
{
String fruit;
int cost;
}
现在让我们假设我们有一个以上类示例abc的对象。
我们还有一个方法如下:
@RequestMapping(/inventory)
public Sample getInventory()
{
Sample abc = new Sample();
----Some processing----
return abc;
}
所以我得到的回应是
{
"fruit":"apple",
"cost":100
}
现在我想要的是响应中的fruit.name,但显然我不能有一个带有点或@字符的名称字段
{
"fruit.name":"apple",
"cost@Dollars":100
}
那么,有没有什么方法可以帮助我得到这种响应呢?如果您使用的是@JsonProperty,那么您可以使用@JsonProperty
public class Sample {
@JsonProperty("fruit.name")
public String fruit;
@JsonProperty("cost@Dollars")
public int cost;
}
如果您使用的是@JsonProperty,那么就可以使用它
public class Sample {
@JsonProperty("fruit.name")
public String fruit;
@JsonProperty("cost@Dollars")
public int cost;
}
使用自定义序列化程序可以轻松实现这一点。你在用什么?杰克逊?可能是的。因为pom.xml显示:com.fasterxml.jackson.core jackson annotations${jackson annotations.version}以及其他与jackson相关的依赖项。给出的答案是一个更简单的解决方案。除非您想添加。或者@programmaly,以防您创建的每个类都有许多字段。那么使用自定义序列化程序会更好。如果是这样的话,让我知道,我可以给你一个例子。你可以很容易地用自定义序列化程序实现。你在用什么?杰克逊?可能是的。因为pom.xml显示:com.fasterxml.jackson.core jackson annotations${jackson annotations.version}以及其他与jackson相关的依赖项。给出的答案是一个更简单的解决方案。除非您想添加。或者@programmaly,以防您创建的每个类都有许多字段。那么使用自定义序列化程序会更好。如果是这样的话,让我知道,我可以给你举个例子。不客气。如果答案解决了你的问题,请接受。干杯。我想它会同时送水果和水果。回复中的名字?不客气。如果答案解决了你的问题,请接受。干杯。我想它会同时送水果和水果。回复中的名字?