杰克逊@JsonIgnoreProperties多个字段与Kotlin
我无法与kotlin一起使用@JsonIgnoreProperties。 我需要忽略一个以上的属性,而且我看到很多教程/ SO问题,在java中,通常你会这样做:
@JsonIgnoreProperties({ "p0", "p1", "p2" }) class Example(){...}
所以在kotlin这将是:
@JsonIgnoreProperties(value = arrayOf( "p0", "p1", "p2" )) class Example(){...}
JsonIgnoreProperties接口的value
字段应接受数组,因为它是这样声明的:
public String[] value() default { };
但编译器抱怨并希望一个字符串,而不是一个数组。 我甚至不能重复注释,所以我应该如何忽略多个字段?
编辑:似乎是一个kotlin缺少的功能,实施自1.2测试版。 可以使用value = ["p0", "p1", "p2"]
作为注释。 在1.2 beta之前,可以使用@JsonIgnoreProperties("p0", "p1", "p2")
,没有办法在数组前面加上value =
您可以在这里使用spread运算符 ,这就是Java to Kotlin转换器在您的示例代码中所做的工作,也是Android Studio建议的一个快速解决方案:
@JsonIgnoreProperties(value = *arrayOf( "p0", "p1", "p2" )) class Example { ... }
这是可行的,因为注释参数中的数组类型被转换为Kotlin中的可变参数,所以如果不从其他地方使用数组,就可以这样做:
@JsonIgnoreProperties("p0", "p1", "p2") class Example
- Kotlin Jackson从JSON生成对象
- 如何在Kotlin中使用Jackson JsonSubTypes注释
- 自定义KeyDeserializer
- 我可以通过类型信息来简化这个吗?
- 你如何声明一个使用Jackson XML的JsonTypeInfo.As.WRAPPER_OBJECT的多态字段?
- 如何将JSON反序列化为与Kotlin + Jackson的List <SomeType>
- 为什么Spring MVC JSON的Kotlin返回一个空对象?
- Spring数据Elasticsearch与Kotlin数据类的脚本字段导致Jackson序列化问题
- 在Spring Boot 2.0.0.M1中将Jackson配置为“全局”使用SNAKE_CASE