##Поддержка типов
###Типы с встроенной поддержкой
По умолчанию в LoganSquare поддерживаются следующие типы:
@JsonObject
.yyyy-MM-dd'T'HH:mm:ss.SSSZ
).Кроме того, поддерживаются следующие коллекции:
###Поддержка дополнительных типов
Любой объект Java может быть поддержан LoganSquare, даже если он не попадает в вышеуказанные категории. Чтобы добавить поддержку для собственных типов, вам потребуется расширить один из встроенных классов TypeConverter
. Вы можете зарегистрировать свои пользовательские преобразователи типов одним из следующих способов:
TypeConverter
s (используются во многих местах)LoganSquare.registerTypeConverter(Date.class, new YourConverter());
####Для TypeConverter
s, которые должны использоваться только для определённых переменных
Подсказка: этот метод особенно полезен для обработки нескольких форматов даты!
@JsonObject
public class ModelObject {
@JsonField(typeConverter = YourConverter.class)
public Date speciallyConvertedDate;
}
###Примеры TypeConverter
####TypeConverter
для пользовательского формата даты
public class TimeOnlyDateConverter extends DateTypeConverter {
private DateFormat mDateFormat;
public TimeOnlyDateConverter() {
mDateFormat = new SimpleDateFormat("HH:mm");
}
public DateFormat getDateFormat() {
return mDateFormat;
}
}
####TypeConverter
для enum, где JSON содержит int
public enum TestEnum {
VALUE_1, VALUE_2, VALUE_3
}
public class IntBasedTypeConverter<TestEnum> extends TypeConverter {
@Override
public TestEnum getFromInt(int i) {
return TestEnum.values()[i];
}
public int convertToInt(TestEnum object) {
return Arrays.asList(TestEnum.values()).indexOf(TestEnum.VALUE_1);
}
}
####TypeConverter
для enum, где JSON содержит String
public enum TestEnum {
VALUE_1, VALUE_2, VALUE_3
}
public class EnumConverter extends StringBasedTypeConverter<TestEnum> {
@Override
public TestEnum getFromString(String s) {
TestEnum.valueOf(s);
}
public String convertToString(TestEnum object) {
return object.toString();
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )