- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个 Spring boot(MVC、JPA)应用程序,它需要在不同的请求上返回不同的属性。我找到了 @JsonView 注释,它似乎有效。但是我需要用基本 View 来注释每个属性吗?
示例:
实体 1
@Entity
public class Entity1 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonView(JsonViews.ExtendedView.class)
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "entity1", fetch = FetchType.EAGER)
List<Entity2> entities2;
@JsonView(JsonView.ExtendedView.class)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "entity1", fetch = FetchType.LAZY)
List<Entity3> entities3;
}
实体2
@Entity
public class Entity2 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
实体3
@Entity
public class Entity3 implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
观看次数
public class JsonViews {
public static class BasicView { }
public static class ExtendedView extends BasicView { }
}
Controller
@RequestMapping(method = RequestMethod.GET)
@JsonView(JsonViews.BasicView.class)
public @ResponseBody List<Entity1> index() {
return repositoryEntity1.findAll();
}
这是一个修剪过的例子,但我认为它适用于这个问题。我希望 Controller 返回 ID 和 Entity2
对象列表。但它返回一个具有“无属性”的空对象。如果我注释这个请求中涉及的每个类的每个属性,它似乎可以工作,但这真的是必需的还是最好的解决方案?有没有办法定义“DefaultView”?
谢谢
编辑:如果我注释 JpaRepository,它会返回整个对象,包括带有 Entity3 对象的列表。
最佳答案
不,您不需要定义所有属性的 View 。插入
spring.jackson.mapper.default-view-inclusion=true
在您的 application.properties
中。这将导致没有 @JsonView
注释的属性被包含在响应中,并且只有注释的属性将被过滤。
在您的 Controller 中,没有 View 或带有 BasicView
注释的属性将被返回。
关于java - JsonView - 定义默认 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813762/
我使用自定义反序列化器,但是当我调用objectMapper.writerWithView(Views.MyView.class)时,我没有得到预期的结果。 在调试的时候,我发现在方法中 public
我有包装 JPA 实体的 UI 对象,并且在该 UI 对象的构造函数中,我对某些属性进行了延迟加载。在同一个构造函数中,我需要知道 JsonView 当前处于事件状态,因此我不会延迟加载一些不需要的字
我需要使用@JsonView 在反序列化时抛出异常。 我的 POJO: public class Contact { @JsonView( ContactViews.Person.class
以下内容将仅包含具有 JsonView(View.MyView.class) 注释的字段: @JsonView(View.MyView.class) @RequestMapping(value = "
我无法使用@JsonView 执行这个简单的示例。我做错了什么? ${jackson-2-version} = 2.6.5 com.fasterxml.jackson.core ja
我正在尝试使用 @JsonView 注释从 Spring 中的对象反序列化多个字段。但是,我将注释添加到我的方法中,它没有反序列化指定的字段,而是返回一个空对象。 这是我的 POJO: @Entity
我正在尝试为我的嵌套实体使用 @JsonView 注释。更清楚地说,假设我们有 2 个实体,每个实体都有自己的 View 类。 public class JsonViewAddress {
我有以下测试设置: public class TestingPojo { public int getA() { return 1; } @JsonView(T
我试图根据请求用户的角色有选择地隐藏响应中的某些字段。据我所知,来自 Jackson 的 JsonView 可能是正确的选择。 我需要能够显示所有字段,除非它们已标记有特定的访问级别。我为访问级别创建
我的一个类有 3 个相同类型的属性。现在我正在尝试将其序列化为 JSON,但其中一个属性需要以不同的方式序列化 - 基本上这些属性之一是“内部”,我只需要它的 id,其余属性必须完全序列化。 到目前为
我将 Jackson JSON 1.9.12 与 SpringMVC 一起使用。我创建了一个带有 JSON 字段的 dto。我想要两个具有不同 JSON 字段的相同 dto 配置文件,因此我创建了两个
jackson 2.2.2 ObjectMapper mapper = new ObjectMapper(); mapper.getSerializationConfig().withView(Vie
如何在不在该 Java 对象的每个字段上指定 @JsonView 的情况下将 Java 对象的所有字段包含到 JSON 响应( View )中? 编辑:我需要在不使用另一个外部库的情况下实现这一点。
我有类似于这两个类的东西: public class User { @JsonView(UserView.IdOnly.class) int userID; String na
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在开发一个 Spring boot(MVC、JPA)应用程序,它需要在不同的请求上返回不同的属性。我找到了 @JsonView 注释,它似乎有效。但是我需要用基本 View 来注释每个属性吗? 示
您好,我几乎没有相互嵌入的 UI 对象。示例 #1: class CarUI { public UserUI user; public UserUI agent; .... publi
我正在使用新的 CakePHP 2.1,并希望使用 JsonView 使我的 Controller 响应 JQuery 在客户端创建的 ajax 请求。但是,根据文档,这应该使用 JsonView 自
Spring 从 4.1 版本开始支持 @JsonView。 使用具有多个标识符的 @JsonView 注释 Spring Controller 的(使用 @RestController 注释)方法我
我有一个类包含另一个类的集合。 class A{ @JsonView(VerboseViewA.Minimal.class) String field1; @JsonView(VerboseVi
我是一名优秀的程序员,十分优秀!