Jackson Scala JSON Deserializacja do klas przypadków

Mam JSON, który ma następującą postać:

{
"inventory": [
           {
        "productType": "someProduct1",
        "details": {
            "productId": "Some_id",
            "description": "some description"
        }
        },
 {
        "productType": "someProduct2",
        "details": {
            "productId": "Some_id",
            "description":{"someKey":"somevalue"}
        }
    }
]
}

Klasy przypadków, które chcę, aby powyższy json deserializował, wyglądają następująco:

case class Inventory(products:List[Product])
case class Product(productType:String,details:ProductDetails)
abstract class ProductDetails
case class ProductDetailsSimple(productId:String,description:String) extends ProductDetails
case class ProductDetailsComplex(productId:String,description:Map[String,String]) extends ProductDetails

ja używammoduł jackson-scala aby deserializować powyższy ciąg JSON w następujący sposób:

 val mapper = new ObjectMapper() with ScalaObjectMapper
 mapper.registerModule(DefaultScalaModule)
 mapper.readValue(jsonBody, classOf[Inventory])

Błąd, jaki otrzymuję, jest następujący: „Nieoczekiwany token (END_OBJECT), oczekiwany NAZWA_PLIKU: brakująca właściwość„ @details ”, która ma zawierać id typu (dla klasy ProductDetails) n w [Źródło: java.io.StringReader@12dfbabd; linia : 9, kolumna: 5] ”

przeszedłem przezdokumentacja jacksona dotycząca deserializacji polimorficznej i próbowałem kombinacji, jak wspomniano, ale bez powodzenia. Chciałbym zrozumieć, co robię źle tutaj, co wymaga korekty w odniesieniu do deserializacji za pomocą modułu jackson.

questionAnswers(1)

yourAnswerToTheQuestion