程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从Spring MVC作为JSON发送时动态忽略Java对象中的字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从Spring MVC作为JSON发送时动态忽略Java对象中的字段?

开发过程中遇到从Spring MVC作为JSON发送时动态忽略Java对象中的字段的问题如何解决?下面主要结合日常开发的经验,给出你关于从Spring MVC作为JSON发送时动态忽略Java对象中的字段的解决方法建议,希望对你解决从Spring MVC作为JSON发送时动态忽略Java对象中的字段有所启发或帮助;

@JsonIgnorePropertIEs("fIEldname")注释添加到您的POJO。

或者,您可以@JsonIgnore在反序列化JsON时在要忽略的字段名称之前使用。例:

@JsonIgnore
@JsonProperty(value = "user_password")
public String getUserpassword() {
    return userpassword;
}

GitHub范例

解决方法

我有这样的模型类,用于hibernate

@Entity
@Table(name = "user",catalog = "userdb")
@JsonIgnoreProperties(ignoreUnknown = truE)
public class User implements java.io.serializable {

    private Integer userId;
    private String userName;
    private String emailId;
    private String encryptedPwd;
    private String createdby;
    private String updatedBy;

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @column(name = "UserId",unique = true,nullable = falsE)
    public Integer getUserId() {
        return thiS.UserId;
    }

    public void setUserId(Integer userId) {
        thiS.UserId = userId;
    }

    @column(name = "UserName",length = 100)
    public String getUserName() {
        return this.username;
    }

    public void setUserName(String userName) {
        this.username = userName;
    }

    @column(name = "EmailId",nullable = false,length = 45)
    public String getEmailId() {
        return this.emailId;
    }

    public void setEmailId(String emailId) {
        this.emailId = emailId;
    }

    @column(name = "EncryptedPwd",length = 100)
    public String getEncryptedPwd() {
        return this.encryptedPwd;
    }

    public void setEncryptedPwd(String encryptedPwd) {
        this.encryptedPwd = encryptedPwd;
    }

    public void setcreatedby(String createdby) {
        this.createdby = createdby;
    }

    @column(name = "updatedBy",length = 100)
    public String getupdatedBy() {
        return this.updatedBy;
    }

    public void setupdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }
}

在Spring MVC控制器中,使用DAO,我可以获取对象。并返回为JSON对象。

@Controller
public class UserController {

    @Autowired
    private Userservice userservice;

    @requestMapping(value = "/getUser/{userID}",method = requestMethod.GET)
    @ResponseBody
    public User getUser(@PathVariable Integer userId) throws Exception {

        User user = userservice.get(userId);
        user.setcreatedby(null);
        user.setupdatedBy(null);
        return user;
    }
}

视图部分是使用AngularJS完成的,因此它将获得像这样的JSON

{
  "userId" :2,"userName" : "john","emailId" : "john@gmail.com","encryptedPwd" : "Co7Fwd1fXYk=","createdby" : null,"updatedBy" : null
}

如果我不想设置加密的密码,则将该字段也设置为null。

但是我不想这样,我不想将所有字段发送到客户端。如果我不希望发送密码,updatedby,createdby字段,则我的结果JSON应该像

{
  "userId" :2,"emailId" : "john@gmail.com"
}

我不想发送给其他数据库表的客户端的字段列表。因此,它将根据登录的用户进行更改。我该怎么做?

我希望你能回答我的问题。

大佬总结

以上是大佬教程为你收集整理的从Spring MVC作为JSON发送时动态忽略Java对象中的字段全部内容,希望文章能够帮你解决从Spring MVC作为JSON发送时动态忽略Java对象中的字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。