[英]Serialize inner class with GSON in JAVA
我想序列化一個包含GSON內部類的類。 我已經檢查過內部類是靜態的,這一點很重要。 我已將其設為靜態,但是我的代碼未對其進行序列化。
我要序列化的類:
public class A{
static class B{
public String b;
public B() {}
}
private int data1 = 100;
private String data2 = "hello";
private List<String> list = new ArrayList<String>() {
{
add("String 1");
add("String 2");
add("String 3");
}
};
public A(){
}
}
進行序列化的代碼:
public class json
{
public static void main(String args[])
{
try
{
Gson gson = new Gson();
A a = new A();
String j = gson.toJson(t);
System.out.println(j);
}
}
結果:
{"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]}
問題在於結果不包含內部類的序列化。
我怎么解決這個問題?
非常感謝您的幫助!
您在A
內沒有類型B
的字段,因此沒有要序列化的內容。
您需要類似...
public class A {
...
private B b;
...
public A() {
b = new B();
b.b = "Some String";
}
...
}
這是合適的鏈接 。 它定義了執行此操作的方法,但建議將內部類設置為靜態。
由於您的B類沒有任何值,因此不會序列化。 要序列化,
您可以使用以下命令配置gson構建器:
GsonBuilder gsonBuilder = new GsonBuilder().serializeNulls();
Gson gson=gsonBuilder.create();
gson.toJson(a);
這是鏈接: https : //github.com/google/gson/blob/master/UserGuide.md#null-object-support
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.