Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala、Jackson和@JsonTypeInfo_Json_Scala_Jackson - Fatal编程技术网

scala、Jackson和@JsonTypeInfo

scala、Jackson和@JsonTypeInfo,json,scala,jackson,Json,Scala,Jackson,我正在将一些scala对象序列化为JSON,需要将它们的原始类型添加到序列化中 我有以下课程 class Contact(taxonz : Seq[String]) { val taxons = taxonz} case class Phone(number:String,taxonz : Seq[String]) extends Contact(taxonz = taxonz) case class Mail(value:String,taxonz : Seq[String]) extends

我正在将一些scala对象序列化为JSON,需要将它们的原始类型添加到序列化中

我有以下课程

class Contact(taxonz : Seq[String]) { val taxons = taxonz}
case class Phone(number:String,taxonz : Seq[String]) extends Contact(taxonz = taxonz)
case class Mail(value:String,taxonz : Seq[String]) extends Contact(taxonz = taxonz)
似乎有一个Jackson注释(我正在使用jerkson):JsonTypeInfo

然而,我尝试添加

@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="scalaclass") 
在上面的三个类中,我不会返回我的“scalaclass”属性

val persons = Seq(
      Person("000","bob denard",
             Option(Seq(
            Phone("0132354548",Seq("home")),
            Mail("bob.denard@sqli.com",Seq("business"))
          ))
      ),
      Person("001","aziz bouakaz ben aissef",Option(Seq(Phone("03332354548",Seq("business")))))
    )
    import com.codahale.jerkson.Json
    val jsonResult = Json.generate(persons)
使用jsonResult值:

[
    {"id":"000","fullname":"bob denard","contacts":
            [
                {"number":"0132354548","taxonz":["home"]},
                {"value":"bob.denard@sqli.com","taxonz":["business"]}
            ]
    },...
]

有什么想法吗?:)

这是因为类型信息是Jackson完全处理的元数据,因此您不必仅为了传递类型信息而定义属性


如果您希望能够看到属性值,Jackson 2.0将有这样一个功能(添加
@JsonTypeInfo.visible
属性),但2.0尚未发布(2.0.0-RC1已发布,并包含此功能)。

这是因为类型信息是Jackson完全处理的元数据,因此,您不必仅为了传递类型信息而定义属性

如果您希望能够看到属性值,Jackson 2.0将具有这样的功能(添加
@JsonTypeInfo.visible
属性),但2.0尚未发布(2.0.0-RC1已发布,并包含此功能)