我尝试使用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
我不会期望静态字段被多次解析和写入,而是一次。然而,这不比完全错过更好吗?