[英]json object serialization/deserialization using google gson
我想将Java对象从json序列化/反序列化。 谷歌gson是可取的。 让我参加A班:
class A { int x = 1; int y = 2; }
然后,如果我调用new Gson()。toJson(new A()),我将得到以下信息:
{ x: 1, y : 2}.
但是我想要
{class : "A", x:1, y:2}
因此,我可以使用反射来反序列化它,而无需在编译时知道类名。 我该怎么办? 谢谢。
您的第二个示例不是JSON。 如果您想要维护实例状态和特定类等的东西,请查看YAML
如果最好使用Gson或要求使用Gson,则特定于如何从结构class A {int x = 1; int y = 2;}
的Java实例中生成结构{class:"A", x:1, y:2}
JSON的问题class A {int x = 1; int y = 2;}
class A {int x = 1; int y = 2;}
,目前有必要实现自定义序列化。 同样,要从此JSON反序列化为此Java结构,则必须实现自定义反序列化。
请注意,Gson很快将提供RuntimeTypeAdapter
来进行更简单的多态反序列化,而不是进行这种“手动”处理。 有关更多信息,请参见http://code.google.com/p/google-gson/issues/detail?id=231 。 即使您不能使用RuntimeTypeAdapter
,它也至少提供了一个用于创建可配置的自定义反序列化器的示例。
如果您可以切换JSON映射API,则建议您考虑Jackson ,因为它具有可用的且相对简单的多态解串器机制。 我在http://programmerbruce.blogspot.com/2011/05/deserialize-json-with-jackson-into.html上发布了一些简单的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.