【发布时间】:2020-07-05 16:18:26
【问题描述】:
我正在使用 RESTful API 使用 retrofit2 通过 HTTP 检索一些数据。
我有以下类型的数据,我想将replies 存储为对象:
问题是,当没有值(或字段)存在时,replies 对象是一个空字符串,即:
replies = ""
当有字段时,则replies对象为:
replies = {
"kind" : "Listing",
"data" : {
"key" : "data",
"value" : {
"modhash" : "",
.
.
.
}
}
}
困扰我的是replies的数据类型之间的不一致,它在非空时作为对象给出,而在空时作为字符串("")给出。
我的困境是:由于 Java 是一种静态类型语言,我需要定义 replies 是事先,但我不能将其定义为既不是 Replies 也不是 String 因为它的不一致。我该如何解决这个问题?
【问题讨论】:
-
replies应该包含一个{}当它为空时.. 你应该更改 API 响应而不是解析代码。 -
如果您无法更改 API 响应,您可能希望在代码中处理它 - 将空字符串视为 null。我不知道如何在改造中做到这一点,但在杰克逊你可以这样做stackoverflow.com/questions/60844488/…
-
@Smile 是的,我认为更改 API 响应不可行。谢谢您的建议;我一定会调查的。
标签: java android json rest retrofit