@JsonProperty和@JSONField注解的区别以及用法

1.目的

都是为了解决bean与json字段不一致问题,或者字段定义不符合前端所需要的标准

2.区别
1.框架不同:

@jsonProperty是 Jackson的包,而@jsonfield是fastjson的包

2.用法不同:

(1)bean转换成Json字符串
@JsonProperty:ObjectMapper().writeValueAsString(Object value)
@JSONField:ObjectMapper().readValue(String content, Class valueType)
(2)Json字符串转化为bean
@JsonProperty:ObjectMapper().readValue(String content, Class valueType)
@JSONField:JSONObject.parseObject(String content, Class valueType)
(3)@JSONField这个注解可以用于get、set以及属性上面

public class Test{
	
	/*
		注解在属性上的时候可以设置一些序列化、格式化的属性
		@JSONField(serialize = false)---->序列化的时候忽略这个属性
		@JSONField(format = "yyyyMMdd")---->序列化和反序列化额时候使用yyyyMMdd,一般在Date类型的字段上使用
	*/	
	@JSONField(serialize = false)
	public String Name;

	/*
		注解在set方法表示json转成bean的时候会将json中的Name属性赋值给实体类的Name
	*/
	@JSONField(name="Name")
	public void setName(String Name){
		this.Name = Name;
	}

	/*
		注解在get方法表示bean转换成json的时候会把实体类的Name属性值赋给json的Name
	*/
	@JSONField(name="Name")
	public String getName(){
		return this.Name;
	}


}

(3)@JSONproperty这个注解用于属性上面
如把trueName属性序列化为name,可以在属性名上面增加@JsonProperty(value=“name”)。
(4)jackson的@JsonIgnore使用
作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
@JSONField和@JsonProperty是两个不同的注解,用于处理JSON序列化和反序列化的过程。 @JSONField是阿里巴巴的fastjson库中的注解,用于在属性或方法上进行标记,以控制JSON序列化和反序列化的行为。它可以设置一些属性,比如serialize、deserialize、format等来控制序列化和反序列化的过程。当注解在属性上时,可以设置serialize=false来忽略该属性的序列化,同时可以设置format来指定日期格式化的方式。当注解在get方法上时,表示在将Java对象转换为JSON字符串时,将该方法返回的值作为JSON字段的值。当注解在set方法上时,表示在将JSON字符串转换为Java对象时,将该方法设置的值赋给对应的属性。 @JsonProperty是Jackson库中的注解,也是用于在属性或方法上进行标记,以控制JSON序列化和反序列化的过程。它的作用和@JSONField类似,可以设置value属性来指定JSON字段的名称。当注解在属性上时,表示该属性在序列化和反序列化过程中对应的JSON字段名称。当注解在get方法上时,表示在将Java对象转换为JSON字符串时,将该方法返回的值作为JSON字段的值。当注解在set方法上时,表示在将JSON字符串转换为Java对象时,将该方法设置的值赋给对应的属性。 所以,@JSONField和@JsonProperty都是用于控制JSON序列化和反序列化的注解,它们有一些相似的功能和用法,但是属于不同的库。在使用时需要根据具体的需求和所使用的JSON库选择合适的注解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值