Ниже ссылки имеют несколько опций для работы с десериализацией даты json.
if (window.JSON && !window.JSON.dateParser) {
var reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;
JSON.dateParser = function (key, value) {
if (typeof value === 'string') {
var a = reISO.exec(value);
if (a)
return null;
}
}
}
https://weblog.west -wind.com / posts / 2014 / Jan / 06 / JavaScript-JSON-Date-Parsing-and-real-Dates # Caveats-of-overriding-JSON-Parsing
Если вы используете Java и jakson, рассмотрите возможность использования @JsonDeserialize для интерпретации и назначения нового значения полям даты JSON.
Аннотация @JsonDeserialize указывает Джексону использовать пользовательский десериализатор при десериализации объекта JSON в Java.Для этого необходимо аннотировать поле, к которому необходимо применить пользовательский десериализатор.
Класс Java, который использует аннотацию @JsonDeserialize:
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import guru.springframework.blog.jsonannotation.domain.custom.CustomDateDeserializer;
import java.util.Date;
public class DeserializeDemoBean {
public long personId = 123L;
public String name = "James Clark";
@JsonDeserialize(using = CustomDateDeserializer.class)
public Date activeDate;
@Override
public String toString() {
return "DeserializeDemoBean{" +
"personId=" + personId +
", name='" + name + '\'' +
", activeDate=" + activeDate +
'}';
}
}
Пользовательский десериализатор, которыйна него ссылается предыдущий класс DeserializeDemoBeanbean:
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.text.ParseException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CustomDateDeserializer extends StdDeserializer<Date> {
private static SimpleDateFormat simpleDateFormat =
new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
public CustomDateDeserializer(){
this(null);
}
public CustomDateDeserializer(Class<?> c){
super(c);
}
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext
deserializationContext) throws IOException, JsonProcessingException {
String date = jsonParser.getText();
try {
//Check or implement any custom logic or include Regex patter to identify date pattern and return null or empty
return null;
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
Ссылка: https://dzone.com/articles/jackson-annotations-for-json-part-3-deserialization