Jerkson JsonProperty不工作

时间:2013-11-19 20:04:58

标签: json scala jackson jerkson

使用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包含一个名为&#39; type&#39;的字段。很可能这是Scala中的一个问题,因为&#39;类型&#39;是一个关键词。虽然看起来JsonProperty看起来得到了支持,但这似乎已被打破。

在测试中我有这段代码:

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

打印:

{&#34;名称&#34;:&#34;名称&#34;&#34;值&#34;:&#34;值&#34;,的&#34; A型&#34 ;:&#34;串&#34; 下,&#34;限制&#34;:&#34;限制&#34;&#34;默认值&#34;:&#34; myDefault&#34; &#34;需&#34;:真,&#34;描述&#34;:&#34;降序&#34;}

&#39; A型&#39;而不是&#39;键入&#39;

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

Scala将允许您使用关键字(和所有内容)来命名,如果您将它们放入刻度线(`)

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

这会给你你想要的东西。


Jerkson项目被放弃了。

如果这是带有scala module的杰克逊你的代码没问题,那么@JsonProperty("type")也可以胜任。