Давайте рассмотрим этот пример. У меня есть класс pojo, как показано ниже.Можно ли изменить порядок атрибутов, когда toJson()?
public class MyRecord{
private String name;
private String id;
//constructors and getters,setters
}
, когда я получаю toJson (новый MyRecord ("MyName", "MyId") выход для выше я могу получить.
{
"name": "MyName",
"id": "123"
}
И я унаследовал один, как следует добавить DateTime.
public class MyRecordWithDateTime extends MyRecord{
private String DateTime;
//constructors and getters,setters
}
так, когда я назвал toJson (новый MyRecordWithDateTime ("2016-01-01", "MyName", "MyID"))
выход я с.
{
"name": "MyName",
"id": "123",
"dateTime": "2016-01-01"
}
, но мне это действительно необходимо. (dateTime должен наступить первым.)
{
"dateTime": "2016-01-01",
"name": "MyName",
"id": "123"
}
Есть ли способ сделать это с сохранением наследства?
Поля или члены объекта не имеют порядка (и не должны). Если вам нужны участники, вам следует использовать структуру списка/массива –
@RichardH, если вы внимательно посмотрели Json.toJson() извлекает поля с помощью геттеров и точно следует за порядком геттеров. т. е. если вы пропустите геттер для некоторого поля, он не появится. Причина, по которой я это задал, - это вопрос, есть ли хотя бы аннотация. –
Опираясь на порядок, в котором геттеры написаны в вашем классе, ужасный дизайн. Вам лучше позвонить самим геттерам в том порядке, в котором вы хотите –