创建 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对象

json数组转java对象怎么转

SpringMVC @RequestBody接收Json对象字符串

前端传json对象(包含json数组在里面)的时候,后台为Java,用SSM时候如何接收

java如何接收ajax传递的json类型的数据

java中把json怎么转换成数组