使用 jackson 解析包含等于 java 中 "final" 关键字的变量的 JSON 时出现问题



我正在使用Jackson将JSON文件解析为Java对象。这要求我创建与JSON文件匹配的Java对象。但是目前我有一个像这样的JSON文件:

{
  "name": "myName",
  "final": "whatever"
}

通常我会在Java中创建一个匹配类:

class MyClass {
    String name;
    String final;
}

但是,这里的问题是"最终"是Java关键字,不能用作Java变量名称。解决此问题的最佳方法是什么(试图避免手动解析,因为以上只是真实情况的简化版本(。

您可以使用@jsonproperty注释来告诉杰克逊如何序列化/对自定义字段进行序列化。final是Java中的一个特殊关键字,因此您可以使用此注释并将字段命名为有效:

class MyClass {
    String name;
    @JsonProperty("final")
    String someName;
}

最新更新