JSON-B规范定义了诸如@JsonbProperty
或@JsonbTransient
类的绑定批注,以声明方式将Java对象映射到JSON,然后再映射回JSON。 这些注释可以“非对称地”用于定义序列化和反序列化的不同处理。
如果在Java属性上或在getter和setter上标注JSON Binding批注,则它们将控制对象的序列化和反序列化方式。 如果仅在getter或setter上定义它们,则该行为将仅分别对序列化或反序列化起作用。 多个属性的绑定定义可以在单个类中混合和匹配。
请参见以下示例:
public class Account {private long id;// will always map name to testName@JsonbProperty("testName")private String name;// will serialize id to JSONpublic long getId() {return id;}// will not deserialize id from JSON@JsonbTransientpublic void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
快乐的非对称JSON绑定!
翻译自: https://www.javacodegeeks.com/2018/08/json-b-asymmetrical-property-binding.html