问题标签 [json-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11739 浏览

spring-mvc - Spring MVC Controller中JsonView的动态选择

我知道可以注释控制器方法以@JsonView(...)在 Spring MVC 中静态定义单个视图类。不幸的是,这意味着我需要为我可能拥有的每种类型的视图使用不同的端点。

我看到其他人以前也问这个。虽然这种方法可能有效,但 Spring 通常有很多方法可以做同样的事情。有时,如果您对某些内部结构有一点了解,则解决方案可能比最初看起来要简单得多。

我想要一个可以根据当前主体动态选择适当视图的控制器端点。我是否可以返回一个Model包含适当视图类或MappingJacksonValue直接实例的属性?

我看到org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter#writeInternal有一段代码可以确定要使用的视图:

这似乎来自org.springframework.web.servlet.mvc.method.annotation.JsonViewResponseBodyAdvice#beforeBodyWriteInternal但我无法确定是否有一种方法可以绕过它,只需返回一个包含Jackson2HttpMessageConverter选择正确视图所需信息的特定值。

非常感谢任何帮助。

0 投票
0 回答
1159 浏览

java - @JsonView 对我不起作用(Spring 4.1.5,Jackson 2.5.1)

我的实体中有一个带有 @JsonView 注释的字段:

在我的控制器内部:

我的视图类:

我预计响应将仅包含“密码”字段,但它不包含任何内容。当我从控制器中删除注释@JsonView(View.Secure.class)时 - 它照常工作并返回所有字段。我究竟做错了什么?是否需要在 Spring 配置中添加一些额外的配置?

我使用了本教程:https ://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring

0 投票
0 回答
308 浏览

json - 选择 JsonView 在运行时序列化 HttpResponse

我们有一个使用 Jackson 的 spring 支持的 resteasy REST API 实现。

我想在运行时(在我的资源类中)决定应该使用哪个 JsonView 来序列化 HttpResponse。

我正在尝试使用自定义序列化程序,但似乎在设置对象映射器后无法配置视图。什么方法可以做到这一点?

0 投票
1 回答
675 浏览

java - 在 Spring MVC 4 + jackson 2.5 中使用 @JsonView

我将使用 Spring MVC 4.0.4、Hibernate 4.3.5 和 Jackson 2.5.4 开发 JSON REST 服务。对于控制器,我需要@JsonView过滤属性。

我用@JsonView(View.Summary.class)和注释了模型的一些属性@JsonView(View.Details.class)。当我注释控制器以过滤其结果时(使用@JsonView(View.Summary.class)),它返回所有带注释的属性而不考虑传递的视图类(View.Summary.class)。

查看课程:

模型 :

控制器:

Spring消息转换器:

HibenrateAwareObjectMapper:

结果:

预期结果:

感谢您的关注。

0 投票
1 回答
755 浏览

java - 整个 Spring MVC 休息控制器的 @JsonView 声明

有什么方法可以@JsonView为整个 Spring MVC 休息控制器声明吗?

我知道我可以声明@JsonView这样的特定方法:

但我不想定义@JsonView每个方法,因为我的方法是在超级类中定义的,我不想仅仅为了添加单个注释而重写它们。
我想@JsonView为整个控制器声明,例如:

有什么办法可以做到这一点吗?

0 投票
1 回答
791 浏览

jackson - Jackson - 如何在运行时找到活动的 JsonView

我有包装 JPA 实体的 UI 对象,并且在该 UI 对象的构造函数中我会延迟加载一些属性。在同一个构造函数中,我需要知道 JsonView 当前处于活动状态,所以我不会延迟加载一些不需要的字段,如果说它是 List 视图。有没有办法从构造函数中找出运行时当前活动的 JsonView 是什么。或者有没有其他方法可以实现我上面描述的。

我目前的计划 创建自定义序列化程序,在序列化过程中将调用它序列化的对象的 setJsonView(Class jsonView)。我所有的序列化对象都必须支持该方法。在那个metid里面,我可以基于现在已知的json视图进行延迟加载。像这样的东西:

0 投票
2 回答
5403 浏览

java - 如何更改特定属性的 JsonView

嗨,我有几个相互嵌入的 UI 对象。示例 #1:

如您所见,如果我将 UserUI 序列化为 Public,我将只公开名称,但对于私有,我将公开所有字段。

这是我的问题:当我序列化对象 CarUI 时,我只想公开“用户”的名称和“代理”的名称+电话。这实质上意味着在 getUser() 的 getter 中,我想将 JsonView 更改为 Views.Public.class,而对于 getAgent(),我想将其更改为 Views.Private.class

有没有办法在 getter 中覆盖 JsonView 以使返回对象的所有层次结构现在都使用这个新的 JsonView 序列化?

编辑 如下所示,您可以使用 JsonView 继承解决我的 Example#1。更通用的呢。这是示例#2:

在此示例中,我希望为 Agent 显示 name+phone,为 User 显示 name+avatarUrl。

0 投票
3 回答
75123 浏览

json - 是否有任何 JSON 查看器可以打开大型 json 文件(Windows)?

我有几个 GB 的非常大的 JSON 文件。我正在寻找任何高效的 JSON 查看器。我们还可以在其中查看树格式的 JSON。

我知道这么大的文件不能一口气加载。我想知道是否有任何软件可以一次查看部分 JSON(即打开约 1 万条记录)?

0 投票
1 回答
68 浏览

java - 是否需要添加 @JsonView(Views.Public.class) 以启用对控制器的 AJAX 调用?

我最近正在尝试构建一个小型 webapp 来启用 AJAX 调用我的控制器并返回 JSON 结果。我明白注释

用作过滤器以排除您不希望它们被序列化的所有字段。基本上,所有未使用此 JsonView 注释的字段都将被排除。

所以我的问题是:在 Spring 控制器中,注释 JsonView 是否必要?如果您根本不包括它们,无论是在您的控制器中还是在您的模型对象中怎么办?

任何链接/文章将不胜感激。谢谢!

0 投票
1 回答
11176 浏览

firefox-developer-tools - 如何在 Firefox 开发者版中禁用新的 JSON 查看器/阅读器?

Firefox Developer Edition 44现在有一个内置的 JSON 查看器。这是一个很好的姿态,但我更喜欢我使用的第三方 JSON 查看器的可读性。

有什么方法可以禁用、覆盖或以其他方式自定义新的内置 JSON 查看器?