Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 不要在Spring MVC 3中使用Jackson序列化子类型属性_Java_Json_Spring_Spring Mvc_Spring Annotations - Fatal编程技术网

Java 不要在Spring MVC 3中使用Jackson序列化子类型属性

Java 不要在Spring MVC 3中使用Jackson序列化子类型属性,java,json,spring,spring-mvc,spring-annotations,Java,Json,Spring,Spring Mvc,Spring Annotations,我将Spring MVC与如下控制器一起使用: @RequestMapping(value = "/list", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<Service> list() { return services.list(); } public class Service { private User user; ... } public

我将Spring MVC与如下控制器一起使用:

@RequestMapping(value = "/list", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody List<Service> list() {
return services.list();
}
public class Service {
 private User user;
 ...
}

public class User {
 private String name;
 ...
}

public class ExtendedUser extends User {
 private Location location;
 ...
}
当然,ExtendedUser类型的对象在应用程序中创建,并在服务中设置。当控制器/列表响应请求时,尽管服务类中的引用是User,但会序列化ExtendeDeduser类型的对象。我想知道注释是否有办法只序列化超类型(被引用的类型)并避免子类型

考虑到这个例子,我希望返回一个不带location属性的JSON

提前感谢

使用
@JsonIngore
注释可以轻松完成您关于“我想要一个不返回location属性的JSON”的声明:

public class ExtendedUser extends User {
    @JsonIgnore
    private Location location;
     ...
}

但是,这就是您试图做的,只是从响应中删除位置,还是返回的实际类型(类型id)很重要?如果我不正确,请发布您预期的JSON结果和实际的JSON结果。

我认为这会起作用:

@JsonSerialize(using=User.class)

请参阅此相关答案:

我建议将
用作@JsonSerialize的属性。顺便说一句,@JsonSerialize可以在字段上声明,这样它就不会影响
User
ExtendedUser
的常见序列化行为

public class Service {
  @JsonSerialize(as = User.class)
  private User user;
  ...
}

这只是一个例子。我不希望子类型属性包含在序列化中。其中一个是位置,但还有其他一些。您使用什么库来整理您的对象?我通过org.springframework.web.servlet.view.json使用jackson-mapper-asl-1.9.3