我是靠谱客的博主 内向大碗,最近开发中收集的这篇文章主要介绍java中@JSONField和@JsonProperty注解有什么区别呢?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

下文笔者讲述Java中@JSONField和@JsonProperty的不同之处,如下所示:

今天在springboot的开发中,
可以使用 @JSONField可正常转换
但@JsonProperty无法进行转换
那么是什么原因呢?下文笔者将一一道来,如下所示
package com.java265;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* java265.com 示例程序
* @description 测试@JSONField和@JsonProperty注解
* @AUTHER: java265.com
* @DATE: 2022/5/1
**/
@Data
public class JsonTest {
//测试@JSONField注解
@JSONField(name ="maomaoName")
private String name;
//测试@JsonProperty注解
@JsonProperty("orderWorkNo")
private String no;
public static void main(String[] args) {
String str = "{n" +
"
"maomaoName": "maomao",n" +
"
"orderWorkNo": "898989"n" +
"
n" +
"}";
JsonTest jsonTest = JSONObject.parseObject(str, JsonTest.class);
System.out.println("jsonTest="+jsonTest);
}
}
------运行以上代码,将输出以下信息------
jsonTest=JsonTest(name="maomao",orderWorkNo=null)
以上出现失败的原因:
响应时是使用FastJson做json序列化(阿里巴巴的)
如果换成net.sf.json.JSONObject 则jsonProperty可进行相应的转换

jsonField和jsonProperty的区别

bean转换成Json字符串
@JsonProperty:ObjectMapper().writeValueAsString(Object value)
@JSONField:ObjectMapper().readValue(String content, Class valueType)
Json字符串转化为bean:
@JsonProperty:ObjectMapper().readValue(String content, Class valueType)
@JSONField:JSONObject.parseObject(String content, Class valueType)
@JSONField这个注解可以用于get、set以及属性上面
@JSONproperty这个注解用于属性上面
例:在属性名上面增加@JsonProperty(value="name")
jackson的@JsonIgnore使用
在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
使用方法:当在属性或方法上标记@JsonIgnore时,则返回json数据中不包含该属性

最后

以上就是内向大碗为你收集整理的java中@JSONField和@JsonProperty注解有什么区别呢?的全部内容,希望文章能够帮你解决java中@JSONField和@JsonProperty注解有什么区别呢?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部