我是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
,但同样,您如何知道它是什么类型的?如果它可以被强制转换为数组,那么什么都不是吗?只是写一个反模式。