jackson的maven依赖

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

aaarticlea/png;base64,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" alt="" />所以引入这一个依赖就可以了

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

import com.fasterxml.jackson.annotation.JsonProperty;

public class Student {

    @JsonProperty(value = "real_name")
private String realName; public String getRealName() {
return realName;
} public void setRealName(String realName) {
this.realName = realName;
} @Override
public String toString() {
return "Student{" +
"realName='" + realName + '\'' +
'}';
}
}

测试

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.setRealName("zhangsan");
System.out.println(new ObjectMapper().writeValueAsString(student));
}
}

结果

{"real_name":"zhangsan"}

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

如果使用fastjson呢?

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
import com.alibaba.fastjson.JSON;

public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setRealName("zhangsan");
System.out.println(JSON.toJSONString(student));
}
}

结果

{"realName":"zhangsan"}

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

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

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

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

import java.io.IOException;

public class Main {
public static void main(String[] args) throws IOException {
String jsonStr = "{\"real_name\":\"zhangsan\"}";
Student student = new ObjectMapper().readValue(jsonStr.getBytes(), Student.class);
System.out.println(student);
}
}

结果:

Student{realName='zhangsan'}

@JsonProperty的使用的更多相关文章

  1. 使用JsonProperty Attribute修改返回json

    使用JsonProperty Attribute修改返回 json 值的name 本例使用JsonPropertyAttribute在序列化为JSON时更改属性的名称. public class Vi ...

  2. @jsonProperty 实现返回自定义属性名字

    实现场景: 比如说前端需要返回userPic 这个字段,但是我们数据库定义的是pic字段. 可以用@jsonProperty 来实现 public class User{ @JsonProperty( ...

  3. jackson中@JsonProperty、@JsonIgnore等常用注解总结

    本文为博主原创,未经允许不得转载: 最近用的比较多,把json相关的知识点都总结一下,jackjson的注解使用比较频繁, jackson的maven依赖 <dependency> < ...

  4. @JsonProperty和@JsonAlias的区别

    @JsonProperty这个注解提供了序列化和反序列化过程中该java属性所对应的名称@JsonAlias这个注解只只在反序列化时起作用,指定该java属性可以接受的更多名称 public stat ...

  5. spring mvc 接受前台json @RequestBody json 属性 空 使用 JsonProperty spring mvc 获取json转乘bean

    请给json序列序列化成的javabean 属性加上   @JsonProperty(value = "real_name")   否则 springmvc 可能接受不到数据 ja ...

  6. SpringBoot16 MockMvc的使用、JsonPath的使用、请求参数问题、JsonView、分页查询参数、JsonProperty

    1 MockMvc的使用 利用MockMvc可以快速实现MVC测试 坑01:利用MockMvc进行测试时应用上下文路径是不包含在请求路径中的 1.1 创建一个SpringBoot项目 项目脚手架 1. ...

  7. jsonProperty

    //说明:界面参数name需要为: employeeName,Json格式的话需要传入:employee_name @JsonProperty("employee_name") p ...

  8. Jackson中@JsonProperty等常用注解

    Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个.虽然JDK自带了XML处理类库,但是相对来说比较低级 本文将介绍的Jackson常用注解:精简概述 Jack ...

  9. 用jackson的@JsonProperty注解属性名,会多出一个字段

    遇见了这个情况,我的字段定义是xVal,yVal,用的lombok的@Data注解.然后查询到了下面这偏文章,https://bbs.csdn.net/topics/392305619,里面的回答是图 ...

随机推荐

  1. PS如何查找自己想要的字体

    曾经很多人问我,这是什么字体,答曰:“不知道”,自己平时在作图时也经常会遇到这样的问题,于是我就把文字打出来,然后比照PS里边已经导入的字体挨个试验,这样不仅浪费了大量的时间和精力,而且比对完后,各种 ...

  2. python 操作mysql

    安装模块: #pip install .... MySQLdb(2.x) pymysql(3.x) import MySQLdb as sql con = sql.connect( host = &q ...

  3. [转].net 缩略图方法

    本文转自:http://www.cnblogs.com/promic/archive/2010/04/21/1717190.html private static string strConnect ...

  4. extjs Combobox动态加载数据问题,mode:local 还是remote

    var fabircTypeDs = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'province.do' }), reade ...

  5. [转自51CTO]ITIL与ISO20000的关系

    ITIL它不是一个服务管理标准,而更应该说是一种结构化的方法或流程框架.基于这种方法和框架,已经有越来越多的IT服务管理标准被开发出来了.在这些基于ITIL的IT服务管理标准中,最突出的要属英国标准B ...

  6. PAT天梯赛练习题 L2-013 红色警报(并查集+逆序加边)

    L2-013. 红色警报 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 战争中保持各个城市间的连通性非常重要.本题要求你编写一 ...

  7. GitHub超详细图文攻略

    GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git 分类: 转载2014-03-25 21:10 10641人阅读 评论(2) 收藏 举报 GitHubbr ...

  8. 【IOS笔记】Windows

    Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some m ...

  9. [转自Kevins的天空 http://rootsec.cn]rad studio 2007 up3方法

    rad studio 2007 网络下载点: http://bbs.hnhyxy.com/bcb/CodeGear.RAD.Studio.2007.rar http://andy.jgknet.de/ ...

  10. C 判断路径存在

    1   用   int   access(const   char   *pathname,   int   mode);   判断有没有此文件或目录 --它区别不出这是文件还是目录2   用   i ...