问题标签 [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 投票
1 回答
261 浏览

spring - Json-View 不适用于反应类型(Spring Web mvc,具有反应类型支持)

在 Spring Web mvc 应用程序中,JsonView 对反应类型的支持存在问题。Spring 5 通过 WebMvcConfig 中的 ReactiveTypeHandler + taskExecutor 配置支持响应式类型。数据正在返回,但 JsonView 被忽略,所有数据都将传递给订阅者。这是代码示例:

对于非反应类型,JsonView 由 org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyAdviceChain#processBody 通过 JsonViewResponseBodyAdvice 处理。但它不会在 ReactiveTypeHandler 中触发反应类型。

我知道在spring web响应中,可以通过ServerResponse设置提示Jackson2CodecSupport.JSON_VIEW_HINT来支持json视图,但是这段代码:

在 mvc 中不起作用,它将抛出不受支持的异常 HttpMediaTypeNotAcceptableException,因为此目标类型的 org.springframework.http.converter.GenericHttpMessageConverter#canWrite 为 false。

是否有任何提示或想法如何在 web mvc 上使用 jsonViews 机制来处理反应类型?(由于某些要求,无法将项目中的 web mvc 更改为响应式 web)提前致谢 :)

0 投票
1 回答
142 浏览

grails - 在 Grails JSON 视图中使用域方法

我已经使用 VUE 配置文件创建了一个 Grails 4.0 应用程序,并且正在使用 JSON 视图(http://views.grails.org/latest/#_json_views)并且一切正常,但我还没有找到使用域方法的方法.gson 模板

一个完美的例子:

Person.groovy 域类

个人控制器

/views/person/_person.gson

这是我正在尝试做的一个基本示例,但我无法编译这样的东西,而且我什至没有在文档中看到它是否可能。我还尝试在域类“getFullName()”中调用该方法,然后在 gson 文件中执行“fullName person.fullName”,但这也不起作用。

有没有办法在 .gson 文件中使用域类的方法?

更新:这是带有 getFullName() 的堆栈跟踪日志的示例

这是作为 fullName() 方法的一个示例

0 投票
2 回答
702 浏览

spring-boot - 如何在spring boot中根据@JsonView的rest方法将不同的名称映射到json属性?

我使用相同的 Java POJO 类使用 Spring boot 实现了 2 组 rest API。我必须根据 API 返回不同的字段并为少数字段使用不同的名称。目前我正在为一组 API 使用 @JsonView。但我还需要为该@JsonView 提供不同的名称。例如:对于@JsonView,字段“host”需要命名为“ip”,而对于其他 API,字段“host”需要命名为“host”。我不确定如何根据@JsonView 映射不同的属性名称。

我检查了一些结果,比如使用 MixIns。但不确定如何在 Spring Boot Rest API 中进行操作,尤其是在方法级别。

控制器方法:

预期:{"ip":"10xxx"} 用于 getConInfo API

{"host":"10xxx", "name":"con1"} 用于 getCon API。

实际:为 getConInfo API 获取 {"host":"10xxx"}

0 投票
2 回答
475 浏览

jackson - Springboot 招摇不与 JsonView 一起使用

Swagger 应该支持 JsonView 但我无法让它工作。

这是我的版本:

这是我的模型:

这是我的控制器:

输入和输出都不起作用。这是我招摇的用户界面:

在此处输入图像描述 在此处输入图像描述

我还验证了代码确实有效,调用 REST API 只返回一个字段。

0 投票
0 回答
67 浏览

grails - 在控制器操作中渲染 JSON

我有一个 Grails 3.3.8 应用程序

和下的 json 视图views/partner/_companion.gson

现在我想在控制器操作中将我的对象渲染为 json:

所有这些马蹄莲输出null

什么是正确的渲染方式?

0 投票
1 回答
765 浏览

spring-boot - Spring Boot JPA:在自联接关系中的 JSON 视图上递归

对于我正在尝试构建的项目,我需要从用户类到用户类的多对多关系。(用户有朋友,朋友是用户的朋友)。当试图用 JPA 让 Json 脱离 SpringBoot 时。我的 JSON 上有一个递归循环。(只有当两个用户是彼此的朋友时才会发生这种情况)

我知道会发生什么,但找不到问题的解决方案。如您所见,我正在使用不同的视图来“过滤”视图。问题是:如何停止递归?

堆:

为了完整性,JsonViews 类:

0 投票
0 回答
32 浏览

java - 杰克逊重用对象忽略了使用java的rest请求中的一些属性

场景:我试图将现有 dto 的某些属性重用于我的 Restful 请求。

给定:com.fasterxml.jackson.annotation.*;//v2.9.0

我试图这样做:

但是当我大摇大摆地访问时:

代替

我做错了什么?

0 投票
1 回答
295 浏览

java - 如何仅将 @JsonView 应用于具有 Spring RestController 的对象的子级 - 序列化?

我有这种情况:

现在休息方法:

在这里,我只想用最少的用户对象初始化一个项目,但是什么都不会被初始化,因为我的项目中没有“MinimalUser.class”JsonView,因此它没有被初始化。

我不想将@JsonView 注释放在项目中的所有变量中,因为这将是矫枉过正。

如何告诉控制器仅将 @JsonView-Filtering/Serialization 应用于项目的用户(子)?

因为这个调用工作正常(我只得到必填字段):

0 投票
1 回答
86 浏览

grails - Grails JSON 渲染器未公开拦截器的模型

我想将model字段Interceptor用于 JSON REST 响应。

控制器方法以域对象响应:

JSON 视图使用JsonViewJsonRendererwhich extends DefaultViewRenderer,它直接调用

并且不公开ModelAndView实例。其他渲染器,例如DefaultHtmlRenderer,通过以下方式公开模型:

有没有办法在响应 JSON 响应时填写模型字段?我是否需要建立自己的子类DefaultHtmlRendererModelAndView

作为一种解决方法,我可以ModelAndView为每个响应创建一个,但这似乎不符合 Grails 的易用性精神:

0 投票
1 回答
279 浏览

javascript - react-json-view 修剪字符串中的所有空白

我使用“react-json-view”来显示 json。问题是,库修剪了交付字符串中的所有空格。

我有一个有效 json 的数据:

我在我的 json 组件中收到输出:

有没有办法让这个json变成原始形状?在代码检查器中,有一个带有空格的原始 json - 只有在 react-json-view 组件中才会更改数据。