首页 文章

Gson() . fromJson在Android中返回null

提问于
浏览
0

我正在尝试反序列化从api获取的错误消息,这是我的字符串:

{"Message":"Ya existe un usuario registrado con ese email"}

但是当我像这样调用Gson时,它返回一个带有空值的 NetworkError

String message = new Gson().fromJson(jsonMessage, NetworkError.class).getMessage();

我一直在寻找类似的问题,并意识到 NetworkError 课程中有一些错误,但我无法弄清楚它是什么 . 这是 class :

public class NetworkError {

    private String message;

    public NetworkError(final String message) {
        this.message = message;
    }

    public String getMessage() { return message; }
}

我试过通过包含一个set方法和一个空构造函数,但我仍然得到null . 谢谢

2 回答

  • 3

    NetworkError.java 类中,尝试将类中的 message 变量更改为 Message ,因为这是您在REST响应中接收的密钥,并且在映射密钥时可能会导致问题 .

    我可以理解你仍然可能想要使用camel case作为你的变量名 . 您可以使用 @SerializedName 注释来保存您想要的变量名称,但仍然可以使用GSON映射 . 你可以在what is the basic purpose of @SerializedName annotation in android using GSon上阅读更多内容

  • 0

    JSON中的键区分大小写 . 因此,Gson正在寻找“消息”键,它不存在(您正在使用“消息”键) .

    你可以这样做:

    @SerializedName("Message")
    private String message;
    

相关问题