data class Ticket(
var contact_email : String? = null,
var date_opened : LocalDateTime? = null
)
data class Ticket(
var contact_email : String? = null,
@JsonSerialize(using = ToStringSerializer::class)
@JsonDeserialize(using = LocalDateTimeDeserializer::class)
var date_opened : LocalDateTime? = null
)
怎么修?
你的问题更多的是关于杰克逊而不是科特林。正如Serialize/Deserialize java 8 java.time与Jackson JSON映射器中所述
您需要添加一个额外的gradle依赖项来解决它
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.5")
之后它应该会起作用
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import org.testng.annotations.Test
import java.time.LocalDateTime
class SoTest {
data class Ticket(
var contact_email: String? = null,
var date_opened: LocalDateTime? = null
)
@Test
fun checkSerialize() {
val mapper = ObjectMapper()
mapper.registerModule(JavaTimeModule())
val ticket = mapper.readValue(inputJsonString, Ticket::class.java)
assert ("$ticket"=="Ticket(contact_email=contact@ema.il, date_opened=2017-11-13T06:40)")
}
val inputJsonString = """{
"contact_email": "contact@ema.il",
"date_opened": "2017-11-13T06:40:00Z"
}""".trimIndent()
}
主要内容:数据类,密封类数据类 Kotlin 可以创建一个只包含数据的类,关键字为 data: 编译器会自动的从主构造函数中根据所有声明的属性提取以下函数: / 格式如 对应于属性,按声明顺序排列 函数 如果这些函数在类中已经被明确定义了,或者从超类中继承而来,就不再会生成。 为了保证生成代码的一致性以及有意义,数据类需要满足以下条件: 主构造函数至少包含一个参数。 所有的主构造函数的参数必须标识为 或者 ; 数据类不可
数据类 Kotlin 可以创建一个只包含数据的类,关键字为 data: data class User(val name: String, val age: Int) 编译器会自动的从主构造函数中根据所有声明的属性提取以下函数: equals() / hashCode() toString() 格式如 "User(name=John, age=42)" componentN() functio
试图调用返回简单json的restendpoint,但我总是失败。 结果是这样的: 我的代码是这样的:
主要内容:字面常量,比较两个数字,类型转换,位操作符,字符,布尔,数组,字符串,字符串模板Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是,字符不属于数值类型,是一个独立的数据类型。 类型 位宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 字面常量 下面是所有类型的字面常量: 十进制:123 长整型以大写的 L 结尾:123L 16 进制以 0x 开头
Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型。 类型 位宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 字面常量 下面是所有类型的字面常量: 十进制:123 长整型以大写的 L 结尾:123L 16 进制以 0x 开头:0
我已经学习Kotlin三周了,所以我想从我的Firebase数据库中读取数据。 这是写入数据的mainactivity.kt。 我得到的错误是: > 需要类主体