创建 Java 类以接收 JSON 对象
Posted
技术标签:
【中文标题】创建 Java 类以接收 JSON 对象【英文标题】:Creating Java class to receive JSON object 【发布时间】: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。我不知道如何在改造中做到这一点,但在杰克逊你可以这样做***.com/questions/60844488/…
@Smile 是的,我认为更改 API 响应不可行。谢谢您的建议;我一定会调查的。
【参考方案1】:
您需要从您的 api 更改答案,当 replies
为空时,您应该发送 replies :
【讨论】:
以上是关于创建 Java 类以接收 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
接收到服务器传过来的json数据 怎么转成javascript对象
SpringMVC @RequestBody接收Json对象字符串