Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改REST API响应中的字段名_Java_Json_Spring_Rest_Spring Mvc - Fatal编程技术网

Java 更改REST 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()

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

说到这里,我想发送一个RESTAPI响应。基本上,我从一个方法返回一个对象,然后这些对象的字段及其相应的值显示在API响应中

为了清楚起见,让我们假设我们有一个定义为

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,以防您创建的每个类都有许多字段。那么使用自定义序列化程序会更好。如果是这样的话,让我知道,我可以给你举个例子。不客气。如果答案解决了你的问题,请接受。干杯。我想它会同时送水果和水果。回复中的名字?不客气。如果答案解决了你的问题,请接受。干杯。我想它会同时送水果和水果。回复中的名字?