Spring框架序列化不适用于具有带下划线的键的JSON

时间:2017-06-22 18:11:00

标签: java spring serialization deserialization

我正在使用以下版本的spring框架:

    <org.springframework.version>3.2.4.RELEASE</org.springframework.version>

我的json对象在下面给出

    {
    "temp":20.94,
    "temp_min":20.94,
    }

请注意,其中一个键有下划线(temp_min)。 我的模型如下:

private double temp_min;

public double getTempMin() {
    return this.temp_min;
}

public void setTempMin(double temp_min) {
    this.temp_min = temp_min;
}
private double temp;

public double getTemp() {
    return this.temp;
}

public void setTemp(double temp) {
    this.temp = temp;
}

Temp设置正确,但未设置“temp_min”。

我在getter,setter和变量声明之上尝试了@JsonProperty("temp_min")

我正在使用spring框架的默认序列化。 有谁可以帮我解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以在变量

上添加注释
    @JsonProperty(temp_min)
    private double temp_min;

还要添加班级名称

   @JsonIgnoreProperties(ignoreUnknown = true)

答案 1 :(得分:0)

你想要注释变量, 但你也想要正确地注释它。

恰好使用以下解决方案之一:

1)使用@JsonProperty注释私有变量。

@JsonProperty("temp_min")
private double temp_min

2)注释setter(和getter,如果需要)

@JsonSetter("temp_min")
public void setTempMin(...)
{
    ...
}

@JsonGetter("temp_min")
public double getTempMin()
{
    ...
}

3)使用@JsonProperty

注释setter(和getter,如果需要)
@JsonProperty("temp_min")
public void setTempMin(...)
{
    ...
}

@JsonProperty("temp_min")
public double getTempMin()
{
    ...
}