[英]Serialize abstract class with Gson returns null
我的护目镜 Gson 库有问题。 看下面的代码:
public abstract class Main {
public String foo = "foo";
public List<String> bar = Arrays.asList( "foo", "bar" );
@Override
public String toString( ) {
Gson gson = new Gson( );
return gson.toJson( this );
}
public static void main( String[] args ) {
Main main = new Main( ) {
};
System.out.println(main.toString( ));
}
}
它打印null
。 但我希望它打印{"foo":"foo","bar":["foo","bar"]}
当我在创建Main( )
。
那么如何获得抽象类的正确输出呢?
对于抽象类,您需要编写自己的适配器。 请参阅有关该主题的这篇文章。
抱歉有点晚了,但对于那些不想创建嵌套类的人,您可以使用它:
AbstractPayload payload = new AbstractPayload("field") {};
String result = gson.toJson(payload, AbstractPayload.class)
这适用于我的情况
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.