java - 如何在 Kotlin 中将字符串转换为对象
问题描述
我有一个字符串如下:
IngestDataRequestDto(initiatorEmail=sample@sample.com, ingestionDetails=IngestionDetails(selectedColumns={...
我想将其转换为 IngestDataRequestDto.kt 数据类。
我尝试将反序列化与杰克逊一起使用,也尝试使用直接投射,但两者都没有奏效
try {
previousValue = SerializationService.deserialize(sample.previousValue, IngestDataRequestDto::class)
} catch (e: Exception) {
previousValue = sample.previousValue as IngestDataRequestDto
}
尝试给出杰克逊错误,将字符串捕获到对象异常
解决方案
该字符串似乎是通过toString()
调用某个IngestDataRequestDto
对象生成的,因此它没有正确格式化为 Json 或类似的东西,因此无法使用这些步骤进行反序列化。
对于此任务,您需要自己实现反序列化器,可能使用正则表达式,或者,如果该字符串始终遵循该格式,您可以制作一个模板来提取您需要的信息。
尽管如此,这绝对不是最好的方法,您应该首先搜索生成该字符串的内容,并检查是否有更好的方法来获取该对象的数据。
推荐阅读
- go - 从 stdin 读取到 int 的字符串的类型转换给了我一个 0
- javascript - MVC 关于提交显示和隐藏微调器
- python - 当我尝试采用 2 个矩阵的点积时出现值错误
- c++ - 我是否需要在 make 文件中声明头文件或 cxx 文件或两者都声明?
- javascript - 将 json 响应数组的值映射到预定义的接口
- ios - 我可以在虚拟机 Core i5 Windows 10 Home 上运行 macOS Mojave
- sql - Laravel中where子句中的多变量
- python - 向序列化程序添加一个额外的字段,而不在模型中
- c++ - 为什么 cv::Mat ctor 期望交换大小?
- python-3.x - 通过 pip 安装 egg