与Gson具有不同构造函数的类对象的反序列化

时间:2018-09-27 12:46:35

标签: android json kotlin gson

这里解释了泛型类型的反序列化 https://stackoverflow.com/a/8829656/4553806。 现在假设我们有一些情况,但是我的Class有两个构造函数,它们具有不同的参数计数。

    class TestClass(val par1:String, val par2:String)
    class TestClass(val par1:String)

所以我知道我的对象是TestClass的类型,但是我不知道它是用哪个构造函数初始化的。

如何反序列化?

使用这种方式

val fooType = object : TypeToken<Myclass<String>>() {}.type;
gson.fromJson(json, fooType);

或这个

val fooType = object : TypeToken<Myclass<String, String>>() {}.type);
gson.fromJson(json, fooType);

如果对象字段计数不匹配,可能会导致异常。

如果有人对此案有经验,请在这里提及。

1 个答案:

答案 0 :(得分:0)

GSON非常易于使用,只需设置您的serializedName并使用GSON转换器进行填充即可。这是一个简单的教程。

https://www.tutorialspoint.com/gson/gson_quick_guide.htm