首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring MVC @JsonView使用详解

Spring 提供了对Jackson 非常好的支持,可以查看此spring-jackson-demo代码来掌握。...下面看一例子: 首先我们定义一View,里面包含我们对“要序列化的字段”的定义,我们暂时归为Summary(摘要)。属于Summary的字段都是我们要序列化的字段。...这里也可以将View理解为一组“标识”,而Summary就是其中的一“标识”。...上面例子我们将Summary指定给了id、firstname、lastname三属性,这样,当我们使用@JsonView序列化User对象的时候,就只会序列化这三属性,可以隐藏一些不想序列化的字段属性...JSON Views 继承用法 JsonView 同时还支持继承 比如我们需要将User分两规则进行序列化,一是“基本资料”,即上面那三属性的规则;另一是“详细资料”,除了包含“基本资料”的三属性外

3.7K30

Spring 4 Spring MVC 4 REST + Jackson @JsonView集成实例详解

分享一使用SpringMVC4 Rest 和Jackson的@JsonView注解集成的实例。@JsonView用来过滤JSON响应。Spring4.1开始直接支持@JsonView注解。...第一步使用@JsonView,我们需要创建JSON视图定义。我们需要创建接口或静态。对于一以上的视图,我们可以创建一以上的接口。最好是创建组合接口。...在一里面创建多个接口以应对多个序列化Http响应的视图。要继承一视图,我们可以使用另一接口来继承。...interface FriendsView extends PublicView{} public interface FamilyView extends FriendsView {} } Profile...1.在我们的PublicView,只有@JsonView(Profile.PublicView.class)注解的属性才会过滤。

86420
您找到你想要的搜索结果了吗?
是的
没有找到

前端妹子说:你是好人,但我们不合适!

雷猴,我是一航,一爱叨逼叨的程序员; 某天和前端妹子联调接口时被嫌弃我给的数据太多了,让我给去掉。 哦豁!!! 我倾尽全力给了你 我能给的所有,你竟然说不合适,还让我拿回去!...查询的时候,都把详细的查询出来,定义不同的响应对象并赋值返回,List和UserDetailsInfo 定义特定的对象转换工具 业务对象到响应的视图对象转换时,定义一特殊的转换工具...就可以实现 @JsonView【推荐】 同一响应对象,通过指定不同的Json视图,来达到响应不同数据结构的目的 前几种方式比较好理解,今天要讲的就是最后一种@JsonView 好了,上Bug!!!...上面的测试结果都带有pwd字段,下面就通过JsonView将列表查询的pwd字段给去掉 定义不同的视图对象 @Data @AllArgsConstructor public class User {...注意 JsonView仅支持jackson框架;SpringBoot默认使用的框架就是jackson;如果你将Http的消息转换对象由jackson配置成了FastJson,那么所有的@JsonView

43820

用了几年的 Fastjson,最终替换成了 Jackson

均指代 jackson2)和 gson,因此 org.json 也可以排除了。...Annotation fastjsonzhu 相对于 jackson 来说注解的功能划分的并没有那么细,因此 fastjson 的一注解可能等价于 jackson 多个注解的组合。...// 对属性进行打标,便于在序列化时进行exclude或include,等价于jackson的@JsonView String label() default "";...typeName() default ""; // 反序列化某个接口或抽象或父的子类时指定根据哪个字段的值和子类的typeName相等来决定具体实现,等价于jackson的@JsonTypeInfo.use...替换为org.json.JSONObject, com.alibaba.fastjson.JSONArray替换为org.json.JSONArray,这两库的对象 API 大致相同,当然一些细小的改动还是避免不了的

2.2K30

掌握@ControllerAdvice配合RequestBodyAdviceResponseBodyAdvice使用,让你的选择不仅仅只有拦截器【享学Spring MVC】

在前面关于@ModelAttribute和@InitBinder 的相关文章其实和这个注解是打过照面的:在此注解标注的上使用@InitBinder等注解可以使得它对"全局"生效实现统一的控制。...(inputMessage.getBody(), inputMessage.getHeaders(), classes[0]); } } 说明:这个只要你导入了jackson的jar,默认就会被添加进去...private String name; @JsonView({Complex.class}) private Integer age; } // 准备两view类型(使用接口、均可...@JsonView对应的指定,那最终一值都不会接收(因为一都匹配不上)。...同时也着重介绍了@JsonView的使用:它可以放入参时接收指定的字段;也可以让返回值敏感字段(如密码、盐值等)不予返回,可做到非常灵活的配置和管理,实现一套代码多处使用的目的,提高集成程度。

7K33

spring mvc为什么默认使用jackson而不选择fastjson

总体用法上觉得配置暴力些但使用还算简单, 全局的JSON属性, 基本都是静态方法调用, 传入一些Filter可过滤一些字段, 引用死循环简单设下属性也可避免。...回头想想fastjson过程也是碰到些问题, 一些特殊的json字段例如包含了/等, 默认开启了ASM, 即使在@JSONField设置了别名, 还是无法把json字符串转为对象, 必须禁止ASM,...2. spring mvc默认选择的jackson 现在回头看下Jackson, 参考下MappingJackson2HttpMessageConverter用法, 基本都是重用一ObjectMapper...对象转为json串忽略字段,别名等基本比较依赖对象使用注解@JsonProperty, @JsonIgnore, @JsonView等。...用的时候有时感觉不是太爽, 一pojo, 不同时候可能返回不同的json字段, 这样就需要在pojo加入很多jackson的注解JsonProperty, JsonView等, 侵入性有些强; 如果第三方的

1.6K20

用了几年的 Fastjson,我最终替换成了Jackson

(usage)远小于jackson2(方便起见,下文均以jackson均指代jackson2)和gson,因此org.json也可以排除了。...()指定字段名 启用fastjson的autotype功能,即根据json字符串的@type自动选择反序列化的 Feature.SupportAutoType 关闭 ObjectMapper.DefaultTyping...,因此fastjson的一注解可能等价于jackson多个注解的组合。...() default ""; // 反序列化某个接口或抽象或父的子类时指定根据哪个字段的值和子类的typeName相等来决定具体实现,等价于jackson的@JsonTypeInfo.use...替换为org.json.JSONObject,com.alibaba.fastjson.JSONArray替换为org.json.JSONArray,这两库的对象API大致相同,当然一些细小的改动还是避免不了的

5.1K10

jpa : criteria 作排除过滤、条件除去查出的部分数据、JPA 一参数可查询多个字段

PS : mybatis 也有对于 criteria 的使用,见另一文章:mybatis :Criteria 查询、条件过滤用法 1. 业务场景: (1) ....按业务条件查到所有数据后,要过滤掉其中 “当前领导自己填报的但不由自己审批的数据” ,本来我一直在想是不是会有和 sql 类似于 except 效果的实现 ,就一直想找这个方法,但没有点出这个方法来,...直到在源码中看到一 not 方法 。...在微信端要求在一输入框实现多种类型数据查询。可输入“姓名、项目名称、工作任务、工作类型” 的任意一种,并作相应条件过滤。...这种只给一参数却可能代表多种类型数据的实现 如下: Predicate p = cb.or(cb.like(root.get("employeeName"), "%" + search + "%"

2.5K20

Jackson 使用

在反序列化的时候,默认情况下接受输出信息的实体字段不能有输入不存在的,否则会报 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException...如果某些输入字段在对应实体无匹配,则该字段值为赋予 null 属正常....@JsonIgnore 注解 注解用于排除某个属性,这样该属性就不会被Jackson序列化和反序列化。...@JsonIgnoreProperties(ignoreUnknown = true) 默认为false, 如果在反序列化的过程,字符串有新增的字段并且是 YourClass不存在的,则需要在会转换错误需要加上此注解...JsonValue 注解(用得不多) @JsonValue 可以用在get方法或者属性字段上,一只能用一,当加上@JsonValue注解是,序列化是只返回这一字段的值(用某个方法的返回值序列化整个对象的返回结果

1.8K20

AJAX

JsonIgnore注解来忽略某个geeter定义的属性 /** * 序列化 * ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper实现...注解 (1)@JsonAutoDetect 自动检测,(作用在上)来开启/禁止自动检测。 (2)@JsonIgnore 作用在字段或方法上,用来完全忽略被注解的字段和方法对应的属性。...(5)@JsonIdentityInfo 2.0+版本新注解,作用于或属性上,被用来在序列化/反序列化时为该对象或字段添加一对象识别码,通常是用来解决循环嵌套的问题。....class 解释:被注解的实体每次被序列化时,Jackson都会被为它生成一标识id,若遇到id相同的对象(即同一对象),则不会再次对其序列化,直接忽略,可以断绝循环引用。...(6)@JsonPropertyOrder 作用在上,被用来指明当序列化时需要对属性做排序,它有2属性。

3.7K30

@JsonView注解如何优雅的忽略字段返回

不知道大家有没有这样一感觉,有些东西很简单,确实也非常简单,但是当要去写的时候总想不起来,多多少少有点瑕疵,要不少括号,要不位置不对,反正我在写SQL语句的时候是深有体会,所以虽然这个注解很简单,但是我还是写下来记录一下...,直接使用@JsonIgnore注解就可以忽略该字段,确实给属性字段加了该注解确实可以让它不返回给前台,但是还有这样一需求,我们一般都有一后台管理系统需要管理所有的用户,我们需要查看这个用户是什么时候注册的...} 我们在上方分别定义了两接口,使用@JsonView注解,我们将前台需要展示的字段指向UserSimpleView接口,我们这里需要注意,因为前台所需的数据后台也是需要展示的,所以这里我们直接通过...UserDetailView继承UserSimpleView即可,最后我们将注册时间指向UserDetailView,这样我们的model就算写好了,但是还没有结束。...注解,需要注明我们返回哪些字段,它里面装的就是我们刚才配置的那些字段,最后我们来看一看结果。

1.7K30

SpringMVC04之JSON和全局异常处理

在开发,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc,能将所有类型的异常处理从各处理过程解耦出来,既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护...springmvc提供全局异常处理器(一系统只有一异常处理器)进行统一异常处理。...自定义自己的异常处理器;         3)使用@ControllerAdvice + @ExceptionHandler 4.综合案例   4.1 SpringMVC自带的简单异常处理器 SpringMVC自带了一异常处理器叫...e) { ... } } 注:    1)通过instanceof判断异常类型    2)通过设置mv.setView(new MappingJackson2JsonView...添加jackson相关依赖 com.fasterxml.jackson.core jackson-databind

36710

重学springboot系列之JSON处理工具

-- FastJSON、Gson和Jackson对比 开源的Jackson:SpringBoot默认是使用Jackson作为JSON数据格式处理的库,Jackson在各方面都比较优秀,所以不建议将Jackson...性能比较:笔者看多很多的关于这三库的性能测试,总结如下: 序列化过程性能:fastjson >= jackson > Gson,Gson在数据并发量较大时会与其他二者有较明显差距。...@JsonIgnore 加在属性上面,排除某个属性不做序列化与反序列化 @JsonIgnoreProperties(ignoreUnknown =true),将这个注解写在上之后,就会忽略JSON字符串存在...Ademo.class); 当JSON字符串代表的对象的字段多于定义的字段时,使用readValue会抛出UnrecognizedPropertyException异常,在的定义处加上@JsonIgnoreProperties...我经过反复的实验,为实体增加一无参的构造函数和一全参的构造函数,JsonFormat注解就生效了 ---- Jackson全局配置 在Spring框架内使用Jackson的时候,通常需要一些特殊的全局配置

2.3K10

序列化与反序列化核心用法-JSON框架Jackson精解第一篇

它虽然简单易用,但绝对不是小玩具,本节为大家介绍Jackson的基础核心用法,更多的内容我会写成一系列,5-10篇文章,请您继续关注我。...> 2.9.8 写一PlayerStar的实体,实体主要体现篮球明星的名字、年龄、业余爱好、朋友、年收入等信息,为了尽可能地演示...该注解将针对里面的所有成员变量生效,只要成员变量为null,将不会被包含在序列化结果。...我们还可以通过 @JsonIgnore加在成员变量上面,该成员变量将被排除在序列化和反序列化的过程之外 @JsonIgnoreProperties加在声明上面,指定该类里面哪些字段排除在序列化和反序列化的过程之外...在或成员变量上面加上注解之后,序列化结果如下,指定字段被忽略。

3K33
领券