我尝试使用google.gson.GsonBuilder如下序列化的对象:
public class JsonHelper
{
public static String ToJson(Object o, Type oType)
{
Gson gson = new().setPrettyPrinting().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create();
gson.toJson(o, oType);
}
}
public class JsonTest
{
public static String staticField;
public static String ToJson()
{
JsonTest newJsonTest = new JsonTest();
newJsonTest.staticField = TelephoneStatus.GetPhoneIMEI(); // let's say we use static field to keep IMEI
Type oType = new TypeToken<JsonTest>(){}.getType();
return JsonHelper.ToJson(newJsonTest, oType);
}
}
为返回值 JsonTest
类方法ToJson()
是空的。 如果我改变staticField
字段声明为非静态的 ,它按预期工作。 考虑为什么静态字段不能序列化,它应该被视为一个错误 ? 或者是它认为没有必要?
如果我有一个列表 JsonTest
我不希望有静态字段解析,并写入多次 ,但一次 。 然而,是不是比缺少它在所有更好?