Jerkson JsonProperty not working



使用Jerkson版本:

<dependency>
    <groupId>com.cloudphysics</groupId>
    <artifactId>jerkson_2.10</artifactId>
    <version>0.6.3</version>
</dependency>

我有这个案例类别:

case class Parameter(val name:String, val value:String, @(JsonProperty@field)("type") val aType:String, val restriction:String, val defaultValue:String, val required:Boolean, val description:String)

Json ouptut包含一个名为"type"的字段。显然,这是Scala中的一个问题,因为"类型"是一个关键词。虽然看起来JsonProperty的出售得到了支持,但这似乎已经被打破了。

在一次测试中,我有这样的代码:

val p = Parameter("name", "value", "string", "restricted", "myDefault", true, "desc")
println(Json.generate(p))

它打印:

{"name":"name","value":"value","aType":"string","restriction":"restricted","defaultValue":"myDefault","required":true,"description":"desc"}

"aType"而非"type"

你知道我做错了什么吗?

Scala将允许您使用关键字(和所有内容)来命名,如果您将它们放在tick(`)中

case class Parameter( ..., `type`: String,  ....)

这会给你想要的。


Jerkson项目被放弃。

如果这是带有scala模块的jackson,那么您的代码就可以了,@JsonProperty("type")也可以完成这项工作。

最新更新