Scala Pickling для sql.Timestamp

Я использую библиотеку scala pickling (0.9.0-snapshot) для сериализации Json.

Я хотел бы написать собственный сборщик и разборщик для сериализации и десериализации полей sql.Timestamp как обычных полей, я могу сериализовать поле отметки времени путем переопределения метода pickle в Spickler, я также хочу десериализовать значение метки времени в строке json (строковое значение) в поле отметки времени. Является ли это возможным?

Я имею в виду,

case case T1(id: Long, name: String, time: Timestamp)

JSON как

 {
      "tpe" : "T1",
      "id"  : "42",
      "name": "Name",
      "time": "2014-10-17 17:19:29.97"
  }

возможно, но не может откатить назад к классу дела как

T1(42, "Name", new Timestamp(new Date().getTime)).pickle.value.unpickle[T1]
// Показывает ошибку scala.MatchError: 2014-10-17 17:19:29.97 (класса java.lang.String)

Моя текущая реализация выглядит следующим образом.

class TimestampPickler(implicit val format: PickleFormat) extends SPickler[Timestamp] with Unpickler[Timestamp] {

  private val stringUnpickler = implicitly[Unpickler[String]]    

  override def pickle(picklee: Timestamp, builder: PBuilder): Unit = {    
    builder.hintTag(FastTypeTag.String).beginEntry(picklee.toString).endEntry()    
  }

  override def unpickle(tag: => FastTypeTag[_], reader: PReader): Timestamp = {
       // ToDo
    }

}

  implicit def genTimestampPickler(implicit format: PickleFormat) = new TimestampPickler

0 ответов

Другие вопросы по тегам