Я использую Java с Spring MVC и MyBatis для подключения к базе данных. У меня есть таблица учетных записей, и для некоторых запросов мне нужны все поля, но для других мне нужно удалить некоторые свойства.Java удаляет свойства в ResponseBody
Например, чтобы показать основную информацию после запроса MyBatis, у меня есть несколько полей null и другие false или даже 0, потому что запрос им не нужен. Изначально у меня было это в моем ResponseBody:
{
"accountName": "Pagosonline.com",
"country": "CO",
"commercialName": "PayU - Latam",
"city": "Chiquinquirá",
"location": null,
"secureName": null,
"description": null,
"document": "8301097231",
"localOperation": false,
"address": null,
"acceptInternationalTransactions": false,
"balance": 0
}
Таким образом, я использовал эту аннотацию:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Account implements Serializable {...}
И теперь у меня есть этот ResponseBody без нулевых значений:
{
"accountName": "Pagosonline.com",
"country": "CO",
"commercialName": "PayU - Latam",
"city": "Chiquinquirá",
"document": "8301097231",
"localOperation": false,
"acceptInternationalTransactions": false,
"balance": 0
}
Но, как я не используйте в запросе последние 3 поля, их возвращают false и 0. Альтернативой, о которой я думал, является создание другой модели Entity только с необходимыми полями. Но сначала я хочу знать, есть ли другое решение, возможно, удалив эти поля из ResponseBody.
Ожидаемый ответ:
{
"accountName": "Pagosonline.com",
"country": "CO",
"commercialName": "PayU - Latam",
"city": "Chiquinquirá",
"document": "8301097231"
}
Вы можете попробовать этот '@JsonSerialize (include = JsonSerialize.Inclusion.NON_NULL);' и попробовали ли вы аннотацию в поле вместо уровня класса? Также попробуйте 'Include.NON_EMPTY' вместо' Include.NON_NULL' – Lucky