簡體   English   中英

使用Gson使用參數化成員字段反序列化參數化類型

[英]Deserialize a parameterized type with a parameterized member field using Gson

我想使用Google Gson庫來對具有參數化成員字段的參數化類型進行(反)序列化。

該類如下所示:

public class Foo<T>{
    List<T> bar;
}

我該怎么辦?

我試過像這樣使用TypeToken

Type type = new TypeToken<Foo<String>>() {}.getType();
gson.fromJson<Foo<String>>(json, type);

這將引發一個IllegalStateException

這篇文章可能會對您有所幫助: 使用GSON反序列化通用類型

TLDR,我為您的課程進行了嘗試,您可以使用以下代碼對Foo進行反序列化:

GsonBuilder gson = new GsonBuilder();
String json = "{\"bar\":[\"thing1\",\"thing2\"]}";
Foo deserFoo = gson.create().fromJson(json, Foo.class);
System.out.println(deserFoo.bar);

輸出[thing1,thing2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM