api返回一个对象和一个数组



我是json的新手,有一个问题,我找不到解决方案

我得到了一个api,当执行get请求时,我会得到一些对象,但如果对象中没有数据,就会返回一个数组。

在那一刻,我可以得到任何?,而不是JSONArray或JSONObject,但转换Any?至类

如何正确地将数据转换为kotlin数据类?

返回的对象

返回阵列

我正在将json请求转换为:的类

data class ProductInfo (var product:Product?,var specifications: JsonObject?,var supplements: Any?,var files:List<File>?,var feedback: Feedback?)

这似乎是后端必须为您解决的问题。它们可以为您提供一个可为null的数组,也可以只提供一个空数组,无论什么更方便,但实现多态性并不是一件小事。

Jackson使多态性比Gson更容易,然而,总是需要某种锚来知道如何路由解析,在这种情况下,你没有任何锚。

Jackson使用了一个注释,在那里你可以指示出要转向的内容:

@JsonSubTypes.Type(value = Nothing.class, name = "????")

对于Gson,您必须实现自己的JsonDeserializer,但同样,您如何知道它是什么类型的?如果它可以被强制转换为数组,那么什么都不是吗?只是写一个反模式。

最新更新