Skip to content

Either type cannot be deserialized  #204

@kgignatyev

Description

@kgignatyev

I have code that reproduces problem at:
https://github.com/kgignatyev/misc/tree/master/scala-databind-issue

serialization happens fine, but deserialization fails

{"contents":[{"l":"some string"},{"r":{"id":"a","cType":"widget"}}]}

class EitherHandlingSpec extends FunSuite {

test("can handle 'either'") {
val p = new ContentPage
p.contents += Left("some string")
p.contents += Right(ContentPointer("a","widget"))
val ser = McyObjectMapper.mapper.writeValueAsString(p)
println("ser:\n\n"+ ser)

val newPage = McyObjectMapper.mapper.readValue(ser, classOf[ContentPage])

assert(newPage.contents.length==2)

}

}

class ContentPage {
var contents:ListBuffer[Either[String,ContentPointer]] = ListBuffer()
}

case class ContentPointer (var id:String, var cType:String )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions