我使用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
我正在研究這個問題,並且在我發佈時沒有看到您的答案。最初的問題並沒有表明你知道自定義的反序列化器,並且正在尋找更優雅的東西。從文檔看來,這似乎是標準方法。 –