首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >moshi可空列表在“必需值”中失败。

moshi可空列表在“必需值”中失败。
EN

Stack Overflow用户
提问于 2019-11-12 14:19:38
回答 2查看 9.2K关注 0票数 4

以下工作:

代码语言:javascript
复制
package com.squareup.moshi.problem

import com.squareup.moshi.JsonClass
import com.squareup.moshi.Moshi

@JsonClass(generateAdapter = true)
data class Foo(
        val bar: String?
)

fun main() {
    val adapter=Moshi.Builder().build().adapter<Foo>(Foo::class.java)
    adapter.fromJson("{}")
}

但是当使用一个列表时,它会失败:

代码语言:javascript
复制
package com.squareup.moshi.problem

import com.squareup.moshi.JsonClass
import com.squareup.moshi.Moshi

@JsonClass(generateAdapter = true)
data class Foo(
        val bar: List<String>?
)

fun main() {
    val adapter=Moshi.Builder().build().adapter<Foo>(Foo::class.java)
    adapter.fromJson("{}")
}

通过以下方式:

代码语言:javascript
复制
Exception in thread "main" com.squareup.moshi.JsonDataException: Required value 'bar' missing at $
        at com.squareup.moshi.internal.Util.missingProperty(Util.java:605)
        at com.squareup.moshi.problem.FooJsonAdapter.fromJson(FooJsonAdapter.kt:44)
        at com.squareup.moshi.problem.FooJsonAdapter.fromJson(FooJsonAdapter.kt:16)
        at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
        at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:43)
        at com.squareup.moshi.problem.MoshiProblemKt.main(MoshiProblem.kt:13)
        at com.squareup.moshi.problem.MoshiProblemKt.main(MoshiProblem.kt)

我怎样才能把它写成清单呢?下面是一个显示问题的回购程序:https://github.com/ligi/moshi_problem

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-13 11:10:13

问题其实是莫希的这个bug:

https://github.com/square/moshi/issues/990

hat @cketti为我指出了这个问题。

票数 5
EN

Stack Overflow用户

发布于 2019-11-12 16:27:30

如果bar json值为null,则应如下所示

json

代码语言:javascript
复制
{
"bar": null
}

所以它应该是

代码语言:javascript
复制
adapter.fromJson("{"bar":null}")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58820520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档