当前位置: 首页 > news >正文

城乡建设官方网站百度电商广告代运营

城乡建设官方网站,百度电商广告代运营,ipv6地址可以做网站吗,注册餐饮公司流程和费用JsonIgnoreProperties JsonIgnoreProperties(value { "prop1","prop2" })用来修饰Pojo类, 在序列化和反序列化的时候忽略指定的属性, 可以忽略一个或多个属性. JsonIgnoreProperties(ignoreUnknown true)用来修饰Pojo类, 在反序列化的时候忽略那…
@JsonIgnoreProperties

        @JsonIgnoreProperties(value = { "prop1","prop2" })用来修饰Pojo类, 在序列化和反序列化的时候忽略指定的属性, 可以忽略一个或多个属性.
        @JsonIgnoreProperties(ignoreUnknown = true)用来修饰Pojo类, 在反序列化的时候忽略那些无法被设置的属性, 包括无法在构造子设置和没有对应的setter方法.

@JsonInclude

        @JsonInclude注解的作用是指定实体类在序列化时的策略,在实体类序列化成json的时候在某些策略下,加了该注解的字段不去序列化该字段。例如,返回前端的实体类中如果某个字段为空的话那么就不返回这个字段了。

参数主要有:

  • ALWAYS:表示总是序列化所有属性
  • NON_NULL:表示序列化非null属性
  • NON_ABSENT:表示序列化非null或者引用类型缺省值,例如java8的Optional类,这个选中通常与Optional一起使用
  • NON_EMPTY:表示序列化非Empty的属性,例如空的集合不会被序列化
  • NON_DEFAULT:仅包含与POJO属性默认值不同的值
  • CUSTOM:由{@link JsonInclude#valueFilter}指定值本身,或由{@link JsonInclude#contentFilter}指定结构化类型的内容,由过滤器对象的equals方法进行序列化,返回true则会被排除,返回false会被序列化
  • USE_DEFAULTS:使用默认值
@JsonFormat

  @JsonFormat可以完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的是long,如果使用@JsonFormat(timezone = “GMT+8”, pattern = “yyyy/MM/dd HH:mm:ss”),就返回"2020/07/29 09:58:15"

@JsonIgnore

        @JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在要忽略的字段上。用在属性和方法上,效果是一样的,都会屏蔽掉get、set方法 。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。

@JsonProperty

       如果 json field 的名称和Pojo 的属性名不一致的时, 可以用 @JsonProperty 来注解 getter() 或 setter() 方法, 该注解设定json 对应的属性名, 另外@JsonProperty也经常用来注解构造子的形参, 这时候构造子应该加@JsonCreator 注解.

 @JsonCreator

        如果 Pojo 类定义有参数的构造子, 但没有提供无参构造子时, 在反序列化时是会报错. 有下面两个办法:

  1. 增加一个无参构造子
  2. 为这个有参数的构造子, 加上 @JsonCreator 注解, 同时参数需要加上 @JsonProperty 注解.
@JsonSetter 和 @JsonGetter

        如果 json field 的名称和Pojo 的属性名不一致的时, 可以使用@JsonGetter来注解 getter(), 使用 @JsonSetter 来注解setter() 方法. 这两个注解都可以指定一个属性名. 这两个注解都可以用 @JsonProperty 替换.

@JsonAnySetter

        一般对象属性名都是确定的, 比如 Person这个对象, 有 name/age等具名属性, 但有时候我们还需要为Person这个对象设定一些扩展属性, 这些扩展属性名称暂时不好确定, 通常使用 Map<String, String> 来存放这些扩展属性的K/V. 要把json 数据中的这些属性反序列化到类的Map中, 需要在类上增加一个K/V的setter方法, 而且这个setter方法要加上@JsonAnySetter注解.

public class Person {public String name;private Integer age;private Map<String, String> properties;@JsonAnySetterpublic void add(String key, String value) {properties.put(key, value);}
}
@JsonAnyGetter

        和@JsonAnySetter 注解相对应, 如果要将类中的Map K/V属性序列化到json中, 需要在类上增加一个 @JsonAnyGetter 方法, 该方法直接返回KV map就行.

public class Person {public String name;private Integer age;private Map<String, String> properties;@JsonAnyGetterpublic void add(String key, String value) {properties.put(key, value);}
}
@JsonSerialize 和 @JsonDeserialize

        @JsonSerialize注解可以为类属性设定专门的序列化函数, @JsonDeserialize注解用来为json属性定制化反序列化函数。比如,对于一些敏感性的数据如手机号,姓名等。我们需要做加密传输。

SpringMVC默认的JSON框架为jackson,也可以使用fastjson。

jackson框架的自定义序列化:

1. 自定义的属性json化需要自定义JsonSerializer的实现类.如:

public class EncryptSerializer extends JsonSerializer<String> {@Overridepublic void serialize(String value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {//数据加密jsonGenerator.writeString(RSAUtils.encryptByPriKey(value));}
}

2. jackson的反序列化:

/*** 自定义序列化**/
public class DecryptDeserializer extends JsonDeserializer<String> {
​@Overridepublic String deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {retrun RSAUtils.decrypt(jp.getText());}
}

如果使用的是fastjson。则需要使用ObjectSerializer和ObjectDeserializer

fastjson使用的是 @JSONField类参数化数据

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
</dependency>

    class RSADeserializer implements ObjectDeserializer,ObjectSerializer{/*@Overridepublic <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {String val = (String) parser.parse();return (String)RSAUtils.decrypt(val);}*/public String deserialze(DefaultJSONParser parser, Type type, Object fieldName) {String val = (String) parser.parse();return RSAUtils.decrypt(val);}@Overridepublic int getFastMatchToken() {// TODO Auto-generated method stubreturn 0;}@Overridepublic void write(JSONSerializer serializer, Object object,Object fieldName, Type fieldType, int features)throws IOException {serializer.write(RSAUtils.encrypt(object));}}

http://www.mfbz.cn/news/78/

相关文章:

  • 虚拟主机手机网站怎么申请自己的域名
  • 搜狗推广做网站要钱吗app推广方式有哪些
  • 私人网站建设黑科技引流推广神器怎么下载
  • app制作外包seo人员的相关薪资
  • 番禺区建站服务商口碑营销的好处
  • 滨海新区做网站网络推广员好做吗
  • 极简风格网站介绍上海seo外包公司
  • 香港公司需要网站备案二十条优化措施
  • 武汉市人民政府网站官网厦门网络推广哪家强
  • 伊利网站设计百度搜索广告投放
  • 用自己的电脑做服务器弄网站学电商运营的培训机构
  • 在哪公司建设网站优化推广网站怎么做最好
  • 企业网站建设项目计划书北京网站制作建设公司
  • 短视频推广广告宁波seo网络推广优质团队
  • 广东网站建设公司报价表自媒体seo优化
  • 深圳龙岗今天最新疫情长沙优化科技有限公司正规吗
  • dede网站首页加悬浮广告关键词可以分为哪三类
  • 什么类型客户做网站如何开网店
  • 个人网站怎么做游戏安徽网络推广
  • 广州网站制作企业北京网站优化排名
  • 常用网站有哪些推广文章
  • 网站运营做哪些工作呢今日新闻50字
  • 帝国网站管理系统广告网络营销
  • 单页网站怎么做今天刚刚发生的新闻台湾新闻
  • 做vip的网站好做吗百度浏览器app下载
  • 用织梦做网站还要不要服务器seo运营培训
  • 网站生成手机页面线上营销手段有哪些
  • 重庆梁平网站建设哪家便宜外贸新手怎样用谷歌找客户
  • 长沙高校网站制作公司百度推广官网
  • 小程序网站做多大尺寸网站黄页推广软件