问题:在用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 就是你传什么类型、就给你返回什么类型、很简单看下源码就行,基本数据类型都支持;
希望能帮到遇到此问题的倒霉蛋;