java - Gson 注释不适用于我的模型。

标签 java serialization gson azure-mobile-services

我正在使用 GSON 将 Java 模型转换为 JSON,以便它可以存储在 Windows Azure Mobile 上。这是我使用注释、getter 和 setter 创建的模型。但是它没有被存储。 执行此操作时是否应遵循特殊的命名约定?

public class Alarm
{
@com.google.gson.annotations.SerializedName("id")
private int alarmId;

@com.google.gson.annotations.SerializedName("completed")
private Boolean completed;

@com.google.gson.annotations.SerializedName("time")
private String time;

@com.google.gson.annotations.SerializedName("days")
private int days;

@com.google.gson.annotations.SerializedName("alarm_status")
private String alarmStatus;

@com.google.gson.annotations.SerializedName("alarm_name")
private String alarmName;

@com.google.gson.annotations.SerializedName("milliseconds")
private int milliseconds;

@com.google.gson.annotations.SerializedName("filename")
private String filename;
/*
@com.google.gson.annotations.SerializedName("requester_id")
private String requesterId;

@com.google.gson.annotations.SerializedName("requestee_id")
private String requesteeId;

@com.google.gson.annotations.SerializedName("file_format")
private String fileFormat;

@com.google.gson.annotations.SerializedName("date_set")
private String dateSet;




public Alarm()
{

}

/**
 * Getters and setters
 *
 */
public int getAlarmId() {
    return alarmId;
}

public void setAlarmId(int alarmId) {
    this.alarmId = alarmId;
}

public Boolean getCompleted() {
    return completed;
}

public void setCompleted(Boolean completed) {
    this.completed = completed;
}

public String getTime() {
    return time;
}

public void setTime(String time) {
    this.time = time;
}

public int getDays() {
    return days;
}

public void setDays(int days) {
    this.days = days;
}

public String getStatus() {
    return alarmStatus;
}

public void setStatus(String status) {
    this.alarmStatus= status;
}

public String getName() {
    return alarmName;
}

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

public int getMilliseconds() {
    return milliseconds;
}

public void setMilliseconds(int milliseconds) {
    this.milliseconds = milliseconds;
}

public String getFilename() {
    return filename;
}

public void setFilename(String filename) {
    this.filename = filename;
}

public String getRequesterId() {
    return requesterId;
}

public void setRequesterId(String requesterId) {
    this.requesterId = requesterId;
}

public String getDateSet() {
    return dateSet;
}

public void setDateSet(String dateSet) {
    this.dateSet = dateSet;
}

public String getRequesteeId() {
    return requesteeId;
}

public void setRequesteeId(String requesteeId) {
    this.requesteeId = requesteeId;
}

public String getFileFormat() {
    return fileFormat;
}

public void setFileFormat(String fileFormat) {
    this.fileFormat = fileFormat;
}




@Override
public boolean equals(Object o) {
    return o instanceof Alarm && ((Alarm) o).alarmId == alarmId;
}
}

最佳答案

如果错误仍然存​​在,只需将此函数附加到您的 GSONBuilder。

setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)

以便 GSON 可以自动生成名称。使用此功能后,您可以删除现有的注释。

关于java - Gson 注释不适用于我的模型。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18523263/

相关文章:

Java:扩展一个类,子类的构造函数给出错误

ruby - 如何在 Ruby/Rails 中缓存/序列化 Net::IMAP 对象?

android - 无法访问 POJO 类中的 getter

java - 使用gson将json数组转换为android中的json对象?

Java 控制台在发生日志记录时推送输入文本

java - Spring 延迟加载 - 加载一个 bean 会加载该类的所有 @Lazy bean

Java的split方法有前导空白记录,我无法抑制

c++ - 是否可以卡住和转储程序状态?

java - 如何使 Jackson 的序列化包含属性尊重 JAXB "required"属性?

android - 无法在 SharedPreferences 中保存多个自定义对象?