【问题标题】:Using Jackson and Lombok, is there way to map json fields to static variables使用杰克逊和龙目岛,有没有办法将 json 字段映射到静态变量
【发布时间】:2020-07-22 14:42:10
【问题描述】:

我必须读取 JSON 文件并将环境属性作为静态变量注入。 这是 JSON

{
 "env":"staging",
 "index": "test",
 "indval": "testVal"
 
}

我只需要使用 Jackson 和 Lombok

env 字段映射为我的类中的静态字符串变量
@Data
public class PubConf {

   public static String env;
   private String index;
   private String indval;

}

我总是遇到上述类的错误

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "env"

感谢您解决此问题的想法

【问题讨论】:

  • Static 字段不属于类实例,这就是原因。
  • 为什么需要两个变量来链接到一个实例,而一个变量是静态的?似乎您正在尝试做的事情存在设计问题。
  • 这是一个奇怪的设计,但你为什么不为 env 编写非静态 getter/setter 呢?
  • @JasperKetelaar 我在这里将系统属性存储在 JSON 文件中。而且我只需要使用与环境相关的字段作为静态变量。

标签: java json jackson lombok


【解决方案1】:
@Data
public class PubConf {

   private String env;
   private String index;
   private String indval;
 
    @JsonIgnore
    public static String statEnv;

    public void setEnv(String env) {
        PubConf.statEnv= env;
    }
}

来源:https://www.baeldung.com/spring-inject-static-field

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多