亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁 > IT技術(shù) > Web編程 > 正文

              @JsonProperty注解使用詳解
              2021-09-24 14:44:01

              一、@JsonProperty的access屬性的序列化和反序列化

              實體類

              @TableId(type = IdType.AUTO)
              @ApiModelProperty(value = "自增id")
              private Long id;
              
              @ApiModelProperty(value = "工號")
              @JsonProperty(access = JsonProperty.Access.READ_ONLY)
              private String jobNumber;
              
              @ApiModelProperty(value = "用戶姓名")
              private String username;
              
              @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
              @ApiModelProperty(value = "密碼")
              private String pwd;
              

              1.java存讀redis測試

              保存讀取操作

              LoginUser loginUser = new LoginUser();
              loginUser.setId(1L);
              loginUser.setUserName("test");
              loginUser.setJobNumber("10000000");
              loginUser.setPwd("123456");
              
              # redis保存的(帶有JsonProperty.Access.WRITE_ONLY,直接將屬性忽略)
                [
                  "com.iof.upms.modules.system.vo.LoginUser"
                  {
                    id:-1
                    userName:"test"
                    jobNumber:"10000000"
                  }
              ]
              # redis讀取的(帶有JsonProperty.Access.READ_ONLY,直接將屬性忽略)
              LoginUser(id=1, jobNumber=null, username=test, pwd=null)
              

              在redis中存取時結(jié)論

              • 帶有JsonProperty.Access.WRITE_ONLY的屬性,存入redis時該屬性不保存-忽略,也就是序列化時忽略屬性

              • 帶有JsonProperty.Access.READ_ONLY的屬性,從redis讀取時該屬性不讀取-忽略,也就是反序列化時忽略屬性

              2.postman調(diào)用接口時

              接口調(diào)用測試

              LoginUser loginUser = new LoginUser();
              loginUser.setId(1L);
              loginUser.setUserName("test");
              loginUser.setJobNumber("10000000");
              loginUser.setPwd("123456");
              
              # 接口調(diào)用
              {"id":1,"jobNumber":"10000000","userName": "test"}
              

              接口調(diào)用時結(jié)論

              • 帶有JsonProperty.Access.WRITE_ONLY的屬性,接口請求時該屬性忽略,也就是序列化時忽略屬性
              • 帶有JsonProperty.Access.READ_ONLY的屬性,不受影響,接口接收不存在反序列化操作

              二、@JsonProperty的value屬性序列化和反序列化

              實體類

              @TableId(type = IdType.AUTO)
              @ApiModelProperty(value = "自增id")
              private Long id;
              
              @ApiModelProperty(value = "用戶姓名")
              @JsonProperty(value = "name")
              private String username;
              
              

              1.java存讀redis測試

              保存讀取操作

              LoginUser loginUser = new LoginUser();
              loginUser.setId(1L);
              loginUser.setUserName("test");
              
              # redis保存的(帶有JsonProperty.Access.WRITE_ONLY,直接將屬性忽略)
                [
                  "com.iof.upms.modules.system.vo.LoginUser"
                  {
                    id:-1
                    name:"test"
                  }
              ]
              # redis讀取的(帶有JsonProperty.Access.READ_ONLY,直接將屬性忽略)
              LoginUser(id=-1, userName=test)
              
              

              在redis中存取時結(jié)論

              • 帶有value屬性,存入redis(序列化)時存入的key替換為value的值

              • 帶有value屬性,從redis讀取(反序列化)時自動賦值到對應(yīng)的屬性中

              2.postman調(diào)用接口時

              接口調(diào)用測試

              LoginUser loginUser = new LoginUser();
              loginUser.setId(1L);
              loginUser.setUserName("test");
              
              
              # 接口調(diào)用
              {"id":1, "name": "test"}
              

              接口調(diào)用時結(jié)論

              • 帶有@JsonProperty(value = "*")的屬性,接口請求時,key替換為value的值

              本文摘自 :https://www.cnblogs.com/

              開通會員,享受整站包年服務(wù)立即開通 >