使用 GSON 将 JSON 样式属性名称转换为 Java CamelCase 名称

2022-08-31 08:39:27

我正在使用GSON将我获得的JSON数据转换为Java对象。它在我的所有测试中都运行良好。问题在于,我们的真实对象具有一些名为is_online的属性。GSON仅在它们被命名为完全相等时才映射它们,让GSON将名称转换为Java骆驼大小写是Online会很好。

在创建JSON数据时,这似乎是可能的,驼峰大小写被转换为JSON中的下划线分隔词。但是我找不到一种方法来反过来指定这一点。


答案 1

我发现以下设置在阅读带有下划线属性的json并在我的模型中使用camelcasing时非常有效。

Gson gson = new GsonBuilder()
    .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
    .create()

答案 2

您可以使用序列化名称批注:

@SerializedName("field_name_in_json")
private final String fieldNameInJava;

注意:当您已经设置了 时,将覆盖该特定字段的设置(对于特殊情况非常方便)。FieldNamingPolicySerializedName