仅在Json / xml中获取ID值

时间:2018-07-14 11:08:48

标签: java json lombok

我有两个jpa实体:

@Entity
public class Contact {

@Id
private Long id;
}

@Entity
@XmlRootElement(name = "APPLICATION")
@XmlAccessorType(XmlAccessType.FIELD)
public class Application {

@Id
@JsonProperty("APPLICATION_ID")
@XmlElement(name = "APPLICATION_ID")
private Long id;

@ManyToOne
@JoinColumn(name = "contact_id", nullable = false)
@JsonProperty("CONTACT_ID")
@XmlElement(name = "CONTACT_ID")
private Contact contact;

所以在我的控制器中,我正在获取这样的应用程序的json或xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<APPLICATION>
<APPLICATION_ID>6</APPLICATION_ID>
<CONTACT_ID>
    <id>1</id>
</CONTACT_ID>
</APPLICATION>

但我需要

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<APPLICATION>
<APPLICATION_ID>6</APPLICATION_ID>
<CONTACT_ID>1</CONTACT_ID>
</APPLICATION>

或者在json中,我有:

{
"APPLICATION_ID": 6,
"CONTACT_ID": {
    "id": 1
}

但需要:

{
"APPLICATION_ID": 6,
"CONTACT_ID": 1,
}

我如何仅获取applicationID?所有的getter,constructor和setter都由lombok添加。

1 个答案:

答案 0 :(得分:0)

使用龙目岛,这意味着您还生成了吸气剂。如果仅需要ID,请使用以下内容映射联系人json:

@Data public class Contact { @JsonValue private Long id; }

这将使json使用id作为整个序列化值。 对于xml映射,我认为您必须实现@XmlJavaAdapter