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. BZOJ3924 [Zjoi2015]幻想乡战略游戏

    Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...

  2. JS URL传中文参数引发的乱码问题

    今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决. 解决方法一: 1.在JS里对中文参数进行两次转码 ...

  3. 发生了COMException 异常来自 HRESULT:0x80040228

    异常信息: 发生了COMException 异常来自 HRESULT:0x80040228 原因解决方法:窗体中忘记放LicenseControl控件.,加上LicenseControl即可

  4. 2016.05.03,英语,《Vocabulary Builder》Unit 21

    sub, means 'under', as in subway, submarine, substandard. A subject is a person who is under the aut ...

  5. Wikipedia : OIT history

    http://en.wikipedia.org/wiki/Order-independent_transparency Order-independent transparency From Wiki ...

  6. 【转载 来自sdnlab】 开放网络没那么简单

    链接:开放网络没那么简单 本文是云杉网络工程师张攀对当前开源网络技术现状的一些思考和探索. 开放网元.释放数据的价值 从2012年开始至今,网络行业明显是O字辈的天下.所有我接触过了解过的组织和项目, ...

  7. 背景图片与 CSS的那些事

    在CSS中,背景图片的定位方法有3种: 1)关键字:background-position: top left; 2)像素:background-position: 0px 0px; 3)百分比:ba ...

  8. Javascript 笔记与总结(2-16)事件对象

    事件对象:事件发生的瞬间,发生位置.时间.鼠标按键.触发的节点等信息,被打包成一个对象,此对象,系统自动传递给事件函数的第一个参数. [例]记录 鼠标划过图片时的事件对象 <!DOCTYPE h ...

  9. MySQL 数据库性能优化之SQL优化

    前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...

  10. NEC学习 ---- 布局 -两列, 左侧定宽,右侧自适应

    CSS代码:以下两处代码是NEC中CSS初始化样式和功能性样式.今后的NEC研究中,默认这两处是引用的. /* 这是CSS reset 代码 --- 初始化样式 */ /* reset */ html ...