问题:在用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将空字符串作为JsonElement子类传递时,JsonParser.parseString()会解析为null的问题,提出使用JsonPrimitive来避免异常。作者给出了在条件判断下的解决方案和JsonPrimitive的简介。
2886

被折叠的 条评论
为什么被折叠?



