@JsonProperty的使用

发布时间:2017-3-28 18:06:46 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"@JsonProperty的使用 ",[email protected] 方面的内容,[email protected] 感兴趣的同学可以参考一下。

jackson的maven依赖

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.5.3</version></dependency>

@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。

import com.fasterxml.jackson.annotation.JsonProperty;public class Student {    @JsonProperty("name")    private String trueName;    public String getTrueName() {        return trueName;    }    public void setTrueName(String trueName) {        this.trueName = trueName;    }}

测试

import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;public class Main {    public static void main(String[] args) throws JsonProcessingException {        Student student = new Student();        student.setTrueName("张三");        System.out.println(new ObjectMapper().writeValueAsString(student));    }}

结果

{"name":"张三"}

这里需要注意的是将对象转换成json字符串使用的方法是fasterxml.jackson提供的!!

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.7</version></dependency>
import com.alibaba.fastjson.JSON;public class Main {    public static void main(String[] args) {        Student student = new Student();        student.setTrueName("张三");        System.out.println(JSON.toJSONString(student));    }}

结果

{"trueName":"张三"}

可以看到,@JsonProperty("name")没有生效,为啥?

因为fastjson不认识@JsonProperty注解呀!所以要使用jackson自己的序列化工具方法!

 --------------------------

@JsonProperty不仅仅是在序列化的时候有用,反序列化的时候也有用,比如有些接口返回的是json字符串,命名又不是标准的驼峰形式,在映射成对象的时候,将类的属性上加上@JsonProperty注解,里面写上返回的json串对应的名字

上一篇:springMVC中 request请求数据绑定到Controller入参 过程剖析
下一篇:前端小知识--背景图片百分数是如何计算的

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款