当前位置: 首页 > 知识库问答 >
问题:

用多个同名类型处理JSON响应

程卓君
2023-03-14
{
    "success": false,
    "errorMessages": [
        "You have to select a maximum load of <span style='color:red;'>0</span> Credit/Course but you have selected <span style='color:red;'>3</span> Credit/Course --- [R060]",
        "You can register courses as a full study with a load limit between <span style='color:red;'>12</span> and <span style='color:red;'>18</span> Credit/Course, but you have selected <span style='color:red;'>9</span> Credit/Course --- [R062]"
    ],
    "isConflict": 0
}
{
    "ignoreConflictValue": "W",
    "isConflict": 1,
    "conflict": [
        {
            "EXAM_DATE": "01/01/2019",
            "START_TIME": "08:00 AM",
            "END_TIME": "09:30 AM",
            "COURSE_NAME_SL": "مقاومة مواد,تقنيات الحفر البحري",
            "COURSE_NAME_PL": "STRENGTH OF MATERIALS,OFFSHORE TECHNOLOGY",
            "COURSES_COUNT": "2",
            "ACTIVE": "A"
        }
    ],
    "success": false
}
    null

我的问题是如何为这种情况定义POJO类。

我试图用@nullable创建两个同名字段,但是GSON抱怨POJO有重复的字段。

共有1个答案

程英资
2023-03-14

在Kotlin中,您可以执行以下操作:

用如下所示的泛型定义“ApiResponse”类:

class ApiResponse(@SerializedName("success") val success : Any,
                  @SerializedName("errorMessages") val errorMessages : Array<Any>,
                  @SerializedName("isConflict")
                  val isConflict : Integer)

然后,在您的活动中,使用Gson将响应转换为

 var responseOne = Gson().fromJson(textConflictOneResponse, ApiResponse::class.java)
        var responseZero = Gson().fromJson(textConflictZeroResponse, ApiResponse::class.java)
if (responseOne.success is Boolean){
            Log.v(TAG,"Boolean")
        } else{
            Log.v(TAG,"not boolean")
        }
 类似资料:
  • 以下是GSON的例外: 改型实例是使用GsonConverterFactory创建的

  • 问题内容: 我正在尝试让SignalR与自定义JsonSerializerSettings一起处理其有效负载,特别是我正在尝试设置。 这个问题似乎是,该SignalR中使用的设置,并为它的内部数据结构以及它然后导致各种混乱的(当我设置内部服务器崩溃的最粗鲁的例子,但我也得问题,特别是当回调参与)。 有任何解决方法,还是我做错了? 示例代码演示: 服务器: 客户: 共享: 问题答案: 这可以通过利用

  • 问题内容: 我有一个页面作为HtmlUnit中的UnexpectedPage返回,响应为JSON。我可以使用HTMLUnit进行解析还是需要一个额外的库? 问题答案: HtmlUnit不支持它。它最多可以执行JS函数。您需要事先检查返回的响应是否匹配,然后使用合适的工具进行解析。Google Gson 在此方面很有用。 如果JSON结构是事先已知的,则您甚至可以使用Gson将其转换为完全有价值的J

  • 当kotlin在每个块中更改其类型时,如何从json响应中解析answerData键?我试图保留它,但无法键入cast。如何解析应答数据?

  • 问题内容: 我在弄清楚如何从jQuery $ .post()请求中正确读取JSON响应时遇到了麻烦。 在下面的jQuery代码中,我根据对应的“ color_entry_id”(用作键)从DOM中的元素填充字符串的关联数组: 然后,我发出POST请求,发送“ image_links”数组: 另外,如上所示,我尝试遍历响应数组并输出要成为字符串的每个项目,但是我只得到“ [object Object

  • 我的模式中有一个Postgres'json'列。这是我代码中的列映射: 这不起作用,插入时得到的堆栈跟踪显示: 我也试过: 也会产生同样的错误。