Jackson:将一个值反序列化为两个 java 字段
Jackson: Deserialize one value to two java fields
所以我的 JSON
中有一个字段
{
"Number": "2737212281"}
我想将这个字段反序列化为两个 java 字段
@Column(name = "TRANSACTION_CURRENCY", length = 5)
@JsonProperty("TransactionCurrency")
@JsonAlias({"Number"})
private String TransactionCurrency;
@Column(name = "SD_DOCUMENT_REASON", length = 3, nullable = true)
@JsonProperty("SDDocumentReason")
@JsonProperty("Number")
private String SDDocumentReason;
为了在两个字段中具有相同的值,出于某种原因,库只采用第一个字段(TransactionCurrency)
使用 @JsonCreator
可能是一种选择。
例如,JSON 看起来像:{ "field" : "anything" }
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
class Foo {
private final String field0;
private final String field1;
@JsonCreator
public Foo(@JsonProperty("field") String value) {
this.field0 = value;
this.field1 = value;
}
}
所以我的 JSON
中有一个字段{
"Number": "2737212281"}
我想将这个字段反序列化为两个 java 字段
@Column(name = "TRANSACTION_CURRENCY", length = 5)
@JsonProperty("TransactionCurrency")
@JsonAlias({"Number"})
private String TransactionCurrency;
@Column(name = "SD_DOCUMENT_REASON", length = 3, nullable = true)
@JsonProperty("SDDocumentReason")
@JsonProperty("Number")
private String SDDocumentReason;
为了在两个字段中具有相同的值,出于某种原因,库只采用第一个字段(TransactionCurrency)
使用 @JsonCreator
可能是一种选择。
例如,JSON 看起来像:{ "field" : "anything" }
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
class Foo {
private final String field0;
private final String field1;
@JsonCreator
public Foo(@JsonProperty("field") String value) {
this.field0 = value;
this.field1 = value;
}
}