【问题标题】:Handle Serialization and Deserialization with json schema using jsonschema2pojo使用 jsonschema2pojo 处理带有 json 模式的序列化和反序列化
【发布时间】:2020-05-01 09:38:23
【问题描述】:

我有下面的 json 模式并使用 jsonschema2pojo 库生成了 java 类

AddressSchema.json

{
"$id": "https://example.com/address.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "An address similar to http://microformats.org/wiki/h-card",
"type": "object",
"properties": {
"address": {
  "type": "string"
 }
}

AddressSchema.java

public class AddressSchema {

 private String address;

 @JsonProperty("address")
 public String getAddress() {
    return address;
 }

 @JsonProperty("address")
 public void setAddress(String address) {
    this.address = address;
 }
}

我的要求是在 setter 和 getter 上的 @JsonProperty 中生成具有不同值的类,如下所示。有没有办法实现这种行为?

public class AddressSchema {

 private String address;

 @JsonProperty("address")
 public String getAddress() {
    return address;
 }

 @JsonProperty("addr") //different value in the setter
 public void setAddress(String address) {
    this.address = address;
 }
}

【问题讨论】:

    标签: jackson jsonschema jsonschema2pojo


    【解决方案1】:

    我相信您正在尝试使用同一个类来解析具有不同名称 addr 的某个 json 并让它以不同的名称返回 address。如果不使用两个类和一个映射器来映射值,我看不出怎么可能。作为人类,我们认为addressaddr 非常相似,并且必须有映射它们的机制,而addressname 完全不同,我不会要求它们被映射。但是对于计算机来说,这将是一个难以提供的功能。希望你明白我的意思。

    【讨论】:

    • 可以使用 @JsonProperty 在 getter 和 setter 上使用不同的值进行序列化和反序列化。我的问题是要从 json 模式生成模型类!
    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 2020-10-23
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2011-08-14
    相关资源
    最近更新 更多