当前位置: 首页 > 知识库问答 >
问题:

Gson将加密字符串[重复]反序列化为空

欧金鹏
2023-03-14

我有一个Android应用程序,与Spring开发的RESTAPI联系。应用程序很好地序列化了一个对象,但是Spring应用程序在每个字段不为null时将其解析为null。有什么不对劲?我该怎么办?

这是REST API方法签名:cambioPassword(@quiestHeader(授权)字符串头,PasswordChange userData)

注意:应用程序和API都使用Gson(我没有在Spring应用程序中使用Jackson作为默认值)

我尝试了各种构造函数,并且改变了Java类字段的可见性

public class PasswordChange {
    private String name;
    private String currentPassword; // Ciphered field
    private String newPassword; // Ciphered field

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCurrentPassword() {
        return currentPassword;
    }

    public void setCurrentPassword(String currentPassword) {
        this.currentPassword= currentPassword;
    }

    public String getNewPassword() {
        return newPassword;
    }

    public void setNewPassword(String newPassword) {
        this.newPassword = newPassword;
    }
}

服务器应该能够反序列化PasswordChange类,并且字段不应该为null,因为它们不在原始发送的JSON中。

共有1个答案

邵献
2023-03-14

有没有可能你错过了@quiestBody注释,我希望它看起来像:

@PostMapping("/cambio")
cambioPassword(@RequestHeader("Authorization") String header, @RequestBody PasswordChange userData){
    ...
}

看见https://www.baeldung.com/spring-request-response-body

 类似资料:
  • 问题内容: 我有以下类,它是由Jackson映射的(简化版): 在某些情况下,服务器会返回,然后我想将name设置为空的Java String。 是否有任何Jackson注释,或者如果属性为,我应该只检查getter中的null并返回空字符串? 问题答案: 您可以在默认构造函数中或声明时进行设置: 要么

  • 我有以下由Jackson映射的类(简化版): 在某些情况下,服务器返回,然后我想将name设置为空Java字符串。 是否有任何Jackson注释,或者如果属性为,我应该只检查getter中的null并返回空字符串吗?

  • 首先,我想说这是一个大学项目。 我有三节课<代码>订单抽象类和从订单继承的和类。 我使用Gson序列化/反序列化子类,但我遇到了一点问题。订单类有一个字段,gson使用该字段来确定订单类型,DineIn或Delivery。 序列化工作得很好。问题是,每当我尝试反序列化时,类型字段值都不会读取,并且总是设置为null,即使它存在于JSON文件中。当有很多字段时,就会发生这种情况,因为当我尝试在较小的

  • 问题内容: 我有这个字符串: 我正在反序列化对象: 该对象看起来像: 并尝试创建字典: 但得到。 可能是什么问题? 问题答案: 请参阅mridula的答案,了解为什么您会得到null。但是,如果您想直接将json字符串转换为字典,则可以尝试以下代码段。

  • 我正在使用gson进行改造,将json反序列化为领域对象。这在大多数情况下都很有效。处理问题时会出现麻烦 RealmList(字符串(或任何其他基本数据类型)) 由于Realm不支持RealmList,其中E不扩展Realm对象,所以我将字符串包装在RealmObject中。 我的领域对象如下 SimpleRealmObj工作正常,因为它只有字符串元素 如何反序列化stringStuff?我试过使

  • 我试图反序列化这个json对象数组: 我的java类看起来像这样: 问题在于json的tags属性,它可以是空字符串或数组。现在gson给了我一个错误: 我应该如何反序列化这个json? 我对这个json没有任何控制,它来自第三方api。