@JsonProperty注解解析
生活随笔
收集整理的這篇文章主要介紹了
@JsonProperty注解解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 概述
來源: @JsonPrpperty是jackson包下的一個注解,詳細路徑(com.fasterxml.jackson.annotation.JsonProperty;)作用:@JsonProperty用在屬性上,將屬性名稱序列化為另一個名稱。例子:public class Person{@JsonProperty(value = "name")private String realName;}拓展:jackson可以理解為java對象和json對象進行轉化的工具包。
2. 實例
解釋:定義一個實體類,定義一個Controller層,通過post請求傳入body,分別驗證加和不加@JsonProperty注解的區別。
2.1 引入依賴
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId> </dependency>2.2 創建實體類
package com.gxn.demo.domain; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects;public class Person { // 先將該注解注釋掉 // @JsonProperty(value = "name")private String realName;private Integer age;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Person person = (Person) o;return Objects.equals(realName, person.realName) &&Objects.equals(age, person.age);}@Overridepublic int hashCode() {return Objects.hash(realName, age);}public String getRealName() {return realName;}public void setRealName(String realName) {this.realName = realName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;} }2.3 定義Controller,返回結果是realName和age的值
package com.gxn.demo.controller;import com.gxn.demo.domain.Person; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController;@RestController public class PersonController {@PostMapping("/name")public String getName(@RequestBody Person person) {String name = person.getRealName();Integer age = person.getAge();String res = name + " : " + age;return res;}}2.4 驗證結果
- 未加注解,body中json的key和實體屬性一致:
- 未加注解,body中json的key和實體屬性不一致:
- 加注解,body中json的key和實體屬性一致:
- 加注解,body中json的key與注解的value一致::
3. 總結
通過@JsonProperty注解可以改變實體對應屬性名,一旦使用該注解我們在body中傳參數的就需要按照注解中value的值來定義key。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的@JsonProperty注解解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: erlang(21)-列表推导与计算素数
- 下一篇: 工业用微型计算机(25)-伪操作(1)