- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用 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
字段声明更改为 non-static,它会按预期工作。考虑到为什么静态字段没有被序列化,是否应该将其视为一个错误?还是认为没有必要?
如果我有一个 JsonTest
的列表,我不会期望静态字段被解析和写入多次,但一次。但是,这不是比完全错过更好吗?
最佳答案
但如果有人想要包含静态,请将构建器更改为仅忽略 transient ,因为您会将 transient 和静态的默认值覆盖为仅 transient 。
GsonBuilder gsonBuilder = new GsonBuilder();
// Allowing the serialization of static fields
gsonBuilder.excludeFieldsWithModifiers(java.lang.reflect.Modifier.TRANSIENT);
// Creates a Gson instance based on the current configuration
Gson gson = gsonBuilder.create();
String json = gson.toJson(objectToSerialize);
System.out.println(json);
关于java - 为什么不使用 google.gson.GsonBuilder JSON 解析器序列化静态字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644860/
我将 Retrofit 库与 Gson 结合使用,并最初尝试过: GsonBuilder builder = new GsonBuilder(); builder.registerTy
我在尝试运行 appium 测试时收到上述错误。我使用的 jar 是: 我的 lib 文件夹中的 jars: 我的应用程序将在 之后出现 driver = new AndroidDriver<>(ne
嗨,我在启动驱动程序时遇到了这个问题。 Starting ChromeDriver 2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73) on
我正在使用以下代码( found on this webpage )和 Gson 库(2.8.2)来格式化带有 pretty-print 的 JSON 代码。 import com.google.gs
这个问题已经有答案了: how to config gson to exclude 0 integer values (4 个回答) 已关闭 3 年前。 我的POJO: public class My
我有以下 rest 模板(用于对服务器的 json 请求): public RestTemplate createRestTemplate() { RestTemplate restTempl
我的客户以“2019-11-22T16:16:31.0065786+00:00”格式向我发送日期。我收到以下错误: java.text.ParseException: Unparseable date
我这样调用一个方法: GsonBuilder gsonBuilder = new GsonBuilder() .registerTypeAdapter(CoindeskRateResu
有谁知道如何将这段代码转换成kotlin GsonBuilder builder = new GsonBuilder(); builder.setLenient(); builder.register
String jsons = "{'appname':'application', 'Version':'0.1.0', 'UUID':'300V', 'WWXY':'310W', 'ABCD':'2
我尝试使用 google.gson.GsonBuilder 如下序列化一个对象: public class JsonHelper { public static String ToJson(O
我正在尝试用 java 制作一个 irc 机器人,它使用 Google api 来搜索内容。我找到了一个使用 GSON 的教程,并且该程序编译得很好。当我尝试实际使用机器人时,我收到错误。 我的导入:
我在 json 中以 2011-10-26T20:29:59-07:00 的形式获取日期/时间。这次使用 gsonBuilder.setDateFormat 正确格式化的正确方法是什么? 最佳答案 -
我尝试在程序中使用 Unirest,但不断收到此错误 java.lang.NoSuchMethodError: com.google.gson.Gson.newBuilder()Lcom/google
我正在构建一个 Android 应用程序,它使用 google play 服务作为谷歌地图,使用 Microsoft azure 作为移动服务(云存储)。当我仅使用 Microsoft azure 库
我从服务器得到这个字符串: [ { "title":"spoil the ones u love today", "startDateTime":"2014-08-10T20:10:36.7
我正在使用 Corda 的第 4 版。 以下是显示平台版本和其他依赖项的代码: cordaReleaseGroup=net.corda cordaVersion=4.0 gradlePluginsVe
我是一名优秀的程序员,十分优秀!