Gson 添加数据默认值问题记录

问题:在用Gson add(key(string类型),value(必须是JsonElement子类))时发现,value 传了 "" 空字符串(非null),默认解析后返回null? 虽说影响不大、但是给后端传数据时、如果后端没有进行null处理 就会抛异常(而且后端懒得睬你、人家就是不愿意改...)0.0!! 


1、问题代码示例:

 val json = JsonObject()
 //JsonParser.parseString("") 会被解析成 null
 json.add("key", JsonParser.parseString(""))

是的就是JsonParser.parseString("")的问题;

解决办法:

 val json = JsonObject()
 //JsonPrimitive("") 就会被解析成 ""
 json.add("key", JsonPrimitive(""))

这里你可以根据条件、选择使用JSonPrimitive() 或者 JsonParseString("")

比如:if(xxx is String && xxx == "") JsonPrimitive("") else JsonParseString("");


2、JsonPrimitive 简单介绍:

JsonPrimitive 就是你传什么类型、就给你返回什么类型、很简单看下源码就行,基本数据类型都支持;

Gson 添加数据默认值问题记录_第1张图片

希望能帮到遇到此问题的倒霉蛋;

你可能感兴趣的:(开发语言,kotlin,json)