我正在使用MappingJacksonJsonView将类序列化为JSON,但是,我希望能够根据getter名称重命名默认名称中的某些字段。
这是因为我要为jQuery文件上传输出“delete_url”和“delete_type”等字段名称。我正在使用@Jsonserialize注释手动选择要序列化的字段。
@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Picture {
@JsonSerialize
String getName();
@JsonSerialize
String getDelete_url();
...
例如,我被迫调用方法getDelete_url()
,而我想将其称为getDeleteUrl()
,但在序列化为JSON时仍然输出密钥"delete_url"
。 / p>
答案 0 :(得分:28)
您应该可以使用@JsonProperty
符合资格。
@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Picture {
@JsonSerialize
@JsonProperty("name")
String getName();
@JsonSerialize
@JsonProperty("delete_url")
String getDeleteUrl();
//...
答案 1 :(得分:8)
您是否尝试过使用@JsonProperty注释?
“定义逻辑属性的名称,即用于属性的Json对象字段名称:如果为空String(这是默认值),将使用带注释的字段的名称。”