当前位置: 首页 > article >正文

关于databean.toString()为空的问题

 这个deviceID允许为null,我传的null,然后返回只有resultCode=100,这样是有问题吗?如果device ID传“”空字符串的话是会报错的,com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 12 path $.deviceID

val data = requestProtocolBean.data.toString(),deviceID=  空值消失了

 导致

val deviceConnect = GsonUtils.fromJson(data,DeviceConnect::class.java)执行这个实体类转json字符串出错

com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 12 path $.deviceID

kotlin {"key" : ""} 执行fromjson方法后变成了 {"key" = }

解决办法:

val data = JSON.toJSONString(requestProtocolBean.data)

原因:

Returns a string representation of the object. Can be called with a null receiver, in which case it returns the string "null". 返回对象的字符串表示形式。可以用null接收器调用,在这种情况下,它返回字符串"null"。

当对象为 null 时,返回的时 "null" 而不是 "" (空字符串)

核心原因就是这个数据实体之间用toString来做类型转换,基于kotlin的空安全,导致空字符串消失。


http://www.kler.cn/a/555005.html

相关文章:

  • 【新人系列】Golang 入门(一):基础介绍
  • 分布式数据库:架构演进、核心挑战与行业落地实践
  • SpringCloud面试题----服务注册和发现是什么意思?Spring Cloud如何实现
  • 推荐一款AI大模型托管平台-OpenWebUI
  • Debezium 与 Apache Kafka 的集成方式
  • EasyPoi系列之通用导入接口设计
  • 如何用ClassFinal加密JAR保护知识产权!
  • Spring中事务的传播行为方式
  • 如何看nginx.conf文件?
  • vue3学习1
  • ubuntu 执行 sudo apt-get update 报错
  • Spring扩展点实战-动态线程池
  • Rust编程语言入门教程 (七)函数与控制流
  • 在 Centos7 上部署 ASP.NET 8.0 + YOLOv11 的踩坑实录
  • Web 后端 请求与响应
  • Spring Boot 集成 RabbitMQ 并实现消息确认机制
  • 3月营销日历:开启春日盛宴,绽放生活魅力
  • 浅谈网络 | 容器网络之Cilium
  • 设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。
  • C# 十六进制字符串转换为十进制