更改 REST API 响应中的字段名称

gau*_*tam 1 java rest spring json spring-mvc

嗨,我是新手,所以我可能不了解高级解决方案!

因此,我想为 REST API 发送响应。所以基本上发生的事情是我从一个方法返回一个对象,然后这些对象的字段及其相应的值显示在 API 响应中。

明确地说,我们有一个类定义为

Class Sample
{
    String fruit;
    int cost;
}
Run Code Online (Sandbox Code Playgroud)

现在假设我们有一个上述类的对象(示例 abc)。我们还有一个方法如下:

@RequestMapping(/inventory)
public Sample getInventory()
{
    Sample abc = new Sample();
    ----Some processing----
    return abc;
}
Run Code Online (Sandbox Code Playgroud)

所以我得到的回应是

{
    "fruit":"apple",
    "cost":100
}
Run Code Online (Sandbox Code Playgroud)

现在我想要的是响应中的“fruit.name”,但显然我不能有具有该名称的字段(带有点或@ 字符)!

{
    "fruit.name":"apple",
    "cost@Dollars":100
}
Run Code Online (Sandbox Code Playgroud)

那么有什么方法可以帮助我得到这种回应吗?

Diy*_*kir 5

如果您使用的是Jackson,则可以使用 @JsonProperty

public class Sample {
  @JsonProperty("fruit.name")
  public String fruit;
  @JsonProperty("cost@Dollars")
  public int cost; 
}
Run Code Online (Sandbox Code Playgroud)