如果所有JSON字段名都帶有下劃線的小寫字母,您可以像這樣定義fieldNamingPolicy。
@JsonObject(fieldNamingPolicy = JsonObject.FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
public class DbRecord {
@JsonField
List<OnDutyElement> onDuties;
@JsonField
DateTime dateTime;
你也需要有類型轉換器的日期時間,如果你沒有這樣做已經,LoganSquare允許你現在定義類型轉換器在JsonField註釋這樣
@JsonField(typeConverter = DateTimeConverter.class)
DateTime time;
和DateTimeConverter
public class DateTimeConverter implements TypeConverter<DateTime> {
@Override
public DateTime parse(JsonParser jsonParser) throws IOException {
String dateString = jsonParser.getValueAsString(null);
try {
DateTime dateTime = new DateTime(dateString);
return dateTime.changeTimeZone(TimeZone.getTimeZone("UTC"), TimeZone.getDefault());
} catch (RuntimeException runtimeException) {
runtimeException.printStackTrace();
return null;
}
}
@Override
public void serialize(DateTime object, String fieldName, boolean writeFieldNameForObject, JsonGenerator jsonGenerator) throws IOException {
jsonGenerator.writeStringField(fieldName, object.format("YYYY-MM-DDThh:mm:ss"));
}
}
這看起來更像LoganSquare中的一個bug,然後在你身上碼。你應該在github上提交bugreport。 – Aegis