Обработайте сериализацию и десериализацию с помощью схемы json, используя jsonschema2pojo - PullRequest
1 голос
/ 14 января 2020

У меня ниже json схема и сгенерированный java класс с использованием библиотеки jsonschema2pojo

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;
 }
}

Мое требование - создать класс с различными значениями в @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;
 }
}

1 Ответ

0 голосов
/ 31 января 2020

Я полагаю, что вы пытаетесь использовать один и тот же класс для анализа определенного json с другим именем addr и возврата его с другим именем address. Я не понимаю, как это возможно без использования двух классов и картографа для сопоставления значений. Как люди, мы думаем, что address и addr очень похожи, и должны быть механизмы для их отображения, в то время как address и name совершенно разные, я бы не стал просить их отобразить. Но для компьютеров это было бы сложно обеспечить. Надеюсь, вы поняли мою точку зрения.

...