-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request]Add an option that force primitive type to be non-nullable into Extensions Tab #234
Comments
@Huskyyy 这个,还没太看明白你的需求,你是想要基本类型都给默认值并且不为null,然后String及其它类型给nullable类型及默认值为null? |
@Huskyyy 既然这样,不考虑试试这个? |
@wuseal
Gson反序列化之后,生成的对象是
Gson反序列化之后,生成的对象是
Gson反序列化之后,生成的对象是 这里有两个问题, 上述的第一个问题,实际上是Java代码和Kotlin代码对外暴露的调用方法会不一致,如果是1中的Java代码写的Picture,调用方不需要判断id是否为空;如果是3中的Kotlin代码写的data class,对于id反而需要加上判空的逻辑。 |
@Huskyyy 我也测试了下, Gson确实是按你说的这种行为来的,但是其它的库不清楚,保守起见,可以增加一个选项:
这个情况,只要把原始json里含有null的字段给过滤掉然后再去反序列化 |
@Huskyyy 可以这样过滤: val gson = Gson()
val demoJson = """{ "id" : null, "url" : null}"""
val expectJson = gson.toJson(gson.fromJson(demoJson, JsonElement::class.java))
println(expectJson) 输出结果为: {} |
Fixed in 3.5.0-EAP |
举个例子,
{ picture: { "id" : 1, "url" : "" } }
用这个Json生成Kotlin data代码时,如果勾选了 nullable,生成的代码类似于
能不能识别出基本类型,也就是下面这样
The text was updated successfully, but these errors were encountered: