Tag: jackson

如何使用jackson反序列化Kotlin集合

示例代码我想要的是: data class D(val a: String, val b: Int) val jsonStr = “””[{“a”: “value1”, “b”: 1}, {“a”: “value2”, “b”:”2}]””” // what I need val listOfD: List = jacksonObjectMapper().whatMethodAndParameter?

无法在Kotlin中使用Jackson分析json

我有从服务器返回的下一个JSON {“s”:2,”v”:[[{“g”:”value”},{“s”:”value”},{“t”:”value”}],[{“g”:”value”},{“s”:”value”},{“t”:”value”}]]} 我得到一个错误解析这个,所以我应该如何建立我的类? 我现在有: companion object { class ResponseDataModel { @JsonProperty(“s”, required = true) var s: Int = 0 @JsonProperty(“v”, required = true) lateinit var v: Array } class ValueResponseDataModel { @JsonProperty(“s”, required = true) lateinit var s: String @JsonProperty(“t”, required = true) lateinit var t: String } } 值g被忽略 val mapper = ObjectMapper().registerKotlinModule() var […]

基于科林地图的属性和jackson不工作 – 委托点不同的地图,即地图属性

我试图通过使用委托属性将一些结构引入到我们当前的模型中,并且发现了这种奇怪的行为 为了简单,可以说我们有这个类: class Test{ val data:MutableMap = mutableMapOf() var classProp:String by data } 和这个字符串”{\”data\”:{\”classProp\”:\”propValue\”}}” 在调试中使用jackson映射器(带或不带kotlin模块和kotlinreflection ) 调试variableswatch 你可以看到属性数据指向了一个不同的对象,然后是classProp的委托 你能告诉我做错了什么吗? jackson如何将一个新对象设置为已经初始化的val 我可以命令jackson使用现有的地图,而不是创建一个新的地图 谢谢

Java / Kotlin:为什么Jackson解析日期与SimpleDateFormat不同?

我确定这是某种forms的用户错误,但我不能搞清楚我做错了什么。 我有一个Kotlin数据类,这个类的构造方法如下: data class CronEvent( @JsonFormat( shape = JsonFormat.Shape.STRING, pattern = “yyyy-MM-dd’T’HH:mm:ss’Z'” ) @JsonProperty(“time”) val time: Date ) 这被ObjectMapper填充,接受一个json字符串作为有效载荷。 对于我的unit testing,我有一个SimpleDateFormat对象,我用相同的模式实例化。 val jsonStream = CronEventTests::class.java.classLoader.getResourceAsStream(“CronEventPayload.json”) val cronEvent = jsonStreamToCronEvent(jsonStream) // … val simpleDateFormat = SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss’Z'”) val expectedDate = simpleDateFormat.parse(“2018-01-15T00:48:43Z”) cronEvent.time shouldBe expectedDate 在我的unit testing中加载的json文件( CronEventPayload.json )具有完全相同的日期字符串( 2018-01-15T00:48:43Z ),但我的测试失败。 java.lang.AssertionError: expected: Mon Jan 15 00:48:43 MST […]

SpringBoot + Jackson + Kotlin数据类:字段注释被忽略

我用Kotlin和Java8时间使用Spring Boot。 不知何故,数据类字段上的jackson注释被忽略。 import com.fasterxml.jackson.annotation.JsonProperty import java.time.MonthDay data class DataView(val id: String, @get:JsonProperty(“dayOfMonth”) val monthDay: MonthDay) {} 为什么这些注释会被忽略? 响应仍然包含字段名称“monthDay”。 我知道注释是正确的,根据这个讨论kotlinlang.org 。 就我所知,我没有任何应该影响这个的配置。 pom包含: … spring-boot-starter-parent org.springframework.boot 1.5.6.RELEASE … com.fasterxml.jackson.module jackson-module-kotlin ${jackson.version} com.fasterxml.jackson.datatype jackson-datatype-hibernate5 com.fasterxml.jackson.datatype jackson-datatype-hppc com.fasterxml.jackson.datatype jackson-datatype-jsr310 com.fasterxml.jackson.datatype jackson-datatype-json-org com.fasterxml.jackson.module jackson-module-afterburner …

Kotlin数据类到JSON与spring/jackson

我试图公开一些数据类作为JSON对象,但有些不工作。 我有以下数据类: data class Link( @JsonProperty(“rel”) @JsonView(View.Bind::class) val rel: String, @JsonProperty(“method”) @JsonView(View.Bind::class) val method: HttpMethod, @JsonProperty(“href”) @JsonView(View.Bind::class) val href: String) data class MetaData(val status: HttpStatus) { @JsonView(View.Bind::class) @JsonProperty(“status_code”) fun getStatusCode(): Int { return status.value() } @JsonView(View.Bind::class) @JsonProperty(“status_desc”) fun getStatusDesc(): String { return status.name } } data class Payload( @JsonView(View.Bind::class) @JsonProperty(“payload”) val payload: Any, @JsonProperty(“_meta”) @JsonView(View.Bind::class) […]

Jackson @JsonProperty注释用于kotlin数据类的使用

kotlin 1.2.10 jackson-module-kotlin:2.9.0 我在kotlin中有以下数据类: data class CurrencyInfo( @JsonProperty(“currency_info”) var currencyInfo: CurrencyInfoItem? ) @JsonInclude(JsonInclude.Include.NON_NULL) data class CurrencyInfoItem( @JsonProperty(“iso_4217”) var iso4217: String?, @JsonProperty(“name”) var name: String?, @JsonProperty(“name_major”) var nameMajor: String?, @JsonProperty(“name_minor”) var nameMinor: String?, @JsonProperty(“i_ma_currency”) var iMaCurrency: Int?, @JsonProperty(“i_merchant_account”) var iMerchantAccount: Int?, @JsonProperty(“i_x_rate_source”) var iXRateSource: Int?, @JsonProperty(“base_units”) var baseUnits: Double?, @JsonProperty(“min_allowed_payment”) var minAllowedPayment: Int?, @JsonProperty(“decimal_digits”) var decimalDigits: […]

如何在Kotlin中使用Jackson JsonSubTypes注释

我试图转换一些Java代码,使用jackson的@JsonSubTypes注释来管理多态。 这是工作的Java代码: @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = “type”) @JsonSubTypes({ @JsonSubTypes.Type(value = Comment.class, name = “CommentNote”), @JsonSubTypes.Type(value = Photo.class, name = “PhotoNote”), @JsonSubTypes.Type(value = Document.class, name = “DocumentNote”) }) public abstract class Note implements Identifiable { […] 这是我认为相当的Kotlin代码: JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = “type”) JsonSubTypes( JsonSubTypes.Type(value = javaClass(), […]

jackson@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缺少的function,实施自1.2测试版。 可以使用value = [“p0”, “p1”, “p2”]作为注释。 在1.2 beta之前,可以使用@JsonIgnoreProperties(“p0”, “p1”, “p2”) ,没有办法在数组前加上value =

jackson未能对Kotlin数据类进行反序列化

我正在使用Jackson反序列化Kotlin数据类。 我正在使用jackson-kotlin-module但是Jackson给了我下面的错误: 无法构造MyClass的实例:找不到合适的构造函数,无法从Object值反序列化 我已经尝试添加proguard规则来保留我的类,它的构造函数没有任何成功。 如果我添加一个规则来保存所有的kotlin类,错误就会消失。 有任何想法吗?