我使用gson从JSON表示反序列化POJO对象。使用GSON反序列化包含JSON的对象
我想在我的一个POJO中的某个字段包含任意的JSON数据。例如:
class B {
public String stringField;
public JsonObject jsonField;
}
我希望能够调用Gson.fromJson(json, B.class)
以下JSON:
{
"stringField": "booger",
"jsonField" :
{
"arbitraryField1": "foo"
}
}
,并有导致B.jsonField
包含一个JSONObject与价值foo
的arbitraryField
。
但是,当我尝试这样做时,jsonField
始终是一个空对象({}
)。事实上,越来越普遍,看来下面总是返回一个空对象:
new Gson().fromJson("{ foo: 1 }", JsonObject.class)
我希望上述返回包含字段的对象命名的值为1
foo
怎样才可以有gson在将json反序列化为POJOS时保留任意的json数据?
当然,我可以写一个自定义解串器。这基本上是我在我提出的解决方法中所做的。但它看起来像一个黑客。如果有一种不涉及定制解串器的方式会更好一些 – emmby
我正在研究这个问题,并且在我发布时没有看到您的答案。最初的问题并没有表明你知道自定义的反序列化器,并且正在寻找更优雅的东西。从文档看来,这似乎是标准方法。 –