@Retention(AnnotationRetention.RUNTIME)
@JsonQualifier
annotation class BooleanType
class BooleanAdapter {
@FromJson
@BooleanType
fun fromJson(value: Int): Boolean {
return value == 1
}
@ToJson
fun toJson(@BooleanType value: Boolean): Int {
return if (value) 1 else 0
}
}
No JsonAdapter for class java.lang.Boolean annotated [@com.pk.data.serialize.BooleanType()]
....
下面是虚拟数据和单元测试
@JsonClass(generateAdapter = true)
data class HaHaData(
@BooleanType
@Json(name = "haha") val haha: Boolean?,
)
@Test
fun parseNullBooleanTest() {
val moshi = Moshi.Builder()
.add(BooleanAdapter())
.build()
val json = "{\"haha\":1}"
val jsonWithNull = "{\"haha\":null}"
val data = HaHaDataJsonAdapter(moshi).fromJson(json)
val dataWithNull = HaHaDataJsonAdapter(moshi).fromJson(jsonWithNull) // exception thrown
assert(data?.haha== true)
assert(dataWithNull?.haha == null)
}
您的fromjson
不接受null
作为输入。
如果希望null
变为false:
fun fromJson(value: Int?): Boolean {
return
}
如果您希望null
保持null
(您还必须修改tojson
fun来接受null):
fun fromJson(value: Int?): Boolean? {
return value?.let { it == 1 }
}
添加到DTO对象后,我想向服务器发送一个列表 从…起 当向控制器发送对象时,它会抛出
我有一个JSON字符串,它将空列表标记为而不是。因此,例如,如果我有一个没有子对象的对象,我将收到这样的字符串: 我想将其反序列化为父类,将子类正确设置为子类的空列表。 对于上面的JSON字符串,我想要一个将其id设置为13的对象,并将子元素设置为新的ArrayList 我知道如何为整个类使用注释 然后呢 但是,我想解决从字符串正确实例化列表的一般问题: 我能得到这样的东西吗?
我正在Android上使用Moshi 1.8.0,并按照Moshi文档中的说明创建自定义字段:https://github.com/square/Moshi#custom-field-names-with-json 这意味着我的请求数据类是这样的: 但问题是实际的HTTP请求是这样发送的: 我所期待的是我的请求是这样的: 这似乎对响应工作得很好,但我不知道如何使它对请求工作。 谢谢!这难道不是注释
以下内容将生成一个IllegalArgumentException,因为您“无法序列化抽象类” 我尝试过使用自定义适配器来解决这个问题,但我能找到的唯一解决方案是显式地为每个子类编写所有的属性名。例如: 最终,我希望生成如下所示的JSON: 我很乐意使用自定义适配器来编写每个类型的名称,但我需要一个解决方案,它将自动序列化每个类型的属性,而不是手动编写它们。
问题内容: 使用Jackson 2,我正在寻找一种 通用的 方式将对象序列化为单个值(然后序列化它们,然后再填充该单个字段),而不必重复创建JsonSerializer / JsonDeserializer来处理每种情况。@JsonIdentityInfo批注非常接近,但由于我知道,它将始终对完整的子对象进行序列化,因此略微遗漏了该标记。 这是我想做的一个例子。给定的类: 我希望Order可以序列
我正在使用gson进行改造,将json反序列化为领域对象。这在大多数情况下都很有效。处理问题时会出现麻烦 RealmList(字符串(或任何其他基本数据类型)) 由于Realm不支持RealmList,其中E不扩展Realm对象,所以我将字符串包装在RealmObject中。 我的领域对象如下 SimpleRealmObj工作正常,因为它只有字符串元素 如何反序列化stringStuff?我试过使