【问题标题】:Deserialize JSON to java record using Gson使用 Gson 将 JSON 反序列化为 java 记录
【发布时间】:2022-11-23 05:06:30
【问题描述】:

这是我的代码示例

  public record Person(String firstName, String lastName) {}

  @Test
  void test() {
    String json =
        """
            {
                "firstName": "John",
                "lastName": "Doe"
            }
        """;

    Person person = new Gson().fromJson(json, Person.class);

    assertEquals("John", person.firstName);
  }

这是我得到的一个例外:

java.lang.AssertionError: AssertionError (GSON 2.8.9): java.lang.IllegalAccessException: Can not set final java.lang.String field com.test.GsonTest$Person.firstName to java.lang.String

有没有办法使用 Gson 将 JSON 反序列化为 java 记录?

【问题讨论】:

标签: java json gson deserialization record


【解决方案1】:

Gson 2.10 支持 Java 16+ 记录:https://github.com/google/gson/releases

如果您无法升级,之前链接的https://github.com/google/gson/issues/1794 在线程中有许多解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多