Spring - преобразование строки JSON в объект JSON - PullRequest
0 голосов
/ 08 января 2019

У меня есть таблица user, которая хранится следующим образом:

|---------------------|------------------|-------------------------------------------------------------|
|      id             |     name         |    address                       
|---------------------|------------------|-------------------------------------------------------------|
|      1              |     ken          | {"street":"Street 1","city":"City1", "country":"USA"}       |     
|---------------------|------------------|-------------------------------------------------------------|

Мой POJO:

public class User{
   private int id;
   private String name;
   private String address;
    //setters and getters
}

В моих службах RESTful я хочу иметь следующий JSON в качестве ответа при вызове моего API:

{
   "id": 1,
   "name": "ken",
   "address":{
        "street":"Street 1",
        "city":"City1", 
        "country":"USA"
   }
}

Я могу сделать это, изменив мой address в POJO на объект адреса, а затем сопоставить строку с объектом адреса.

Но есть ли другие способы сохранить мой адрес как строку в POJO, тогда он будет отображаться как JSON?

1 Ответ

0 голосов
/ 08 января 2019

вы можете использовать @JsonSerialize в вашей собственности:

@JsonSerialize(using = CustomeSerializer.class)
private String address;


public class CustomSerializer extends StdSerializer<String>{
    public CustomSerializer(){
        this(null);
    }
    public CustomSerializer(Class<String> t) {
        super(t);
    }

    @Override
    public void serialize(String address, JsonGenerator jsonGenerator,
                          SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeObject(new ObjectMapper().readTree(address));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...