关于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的空安全,导致空字符串消失。