Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jersey 是否可以全局设置JSON-B(Yasson)中的默认日期格式,而不是在每个属性上添加注释?_Jersey_Jax Rs_Payara_Jsonb Api_Yasson - Fatal编程技术网

Jersey 是否可以全局设置JSON-B(Yasson)中的默认日期格式,而不是在每个属性上添加注释?

Jersey 是否可以全局设置JSON-B(Yasson)中的默认日期格式,而不是在每个属性上添加注释?,jersey,jax-rs,payara,jsonb-api,yasson,Jersey,Jax Rs,Payara,Jsonb Api,Yasson,到目前为止,我一直在使用Jersey,我正在使用JSON-B进行我的第一次实现 我用的是Payara,所以我用的是Jersey和Yasson。我遇到了一个问题,因为序列化日期总是包含[UTC]后缀 我已设法在我的DTO中的日期属性上使用注释。但我想在JAX-RS应用程序配置中全局配置它,而不是在每个日期属性上重复我自己。可能吗?到目前为止我还没有找到任何东西 附带问题:我假设可以去掉这个[UTC]后缀,因为它会打断所有试图解析日期的客户端。有什么想法吗?多亏了这个,我才能够解决我的问题。以下是我

到目前为止,我一直在使用Jersey,我正在使用JSON-B进行我的第一次实现

我用的是Payara,所以我用的是Jersey和Yasson。我遇到了一个问题,因为序列化日期总是包含[UTC]后缀

我已设法在我的DTO中的日期属性上使用注释。但我想在JAX-RS应用程序配置中全局配置它,而不是在每个日期属性上重复我自己。可能吗?到目前为止我还没有找到任何东西

附带问题:我假设可以去掉这个[UTC]后缀,因为它会打断所有试图解析日期的客户端。有什么想法吗?

多亏了这个,我才能够解决我的问题。以下是我最后在代码中编写的内容:

JSONConfigurator.java:

import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
import javax.json.bind.JsonbConfig;
import javax.json.bind.config.PropertyNamingStrategy;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;

@Provider
public class JSONConfigurator implements ContextResolver<Jsonb> {

  @Override
  public Jsonb getContext(Class<?> type) {
    JsonbConfig config = getJsonbConfig();
    return JsonbBuilder
      .newBuilder()
      .withConfig(config)
      .build();
  }

  private JsonbConfig getJsonbConfig() {
    return new JsonbConfig()
      .withDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", null);
  }
}
以及:

多亏了这一点,我才得以解决我的问题。以下是我最后在代码中编写的内容:

JSONConfigurator.java:

import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
import javax.json.bind.JsonbConfig;
import javax.json.bind.config.PropertyNamingStrategy;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;

@Provider
public class JSONConfigurator implements ContextResolver<Jsonb> {

  @Override
  public Jsonb getContext(Class<?> type) {
    JsonbConfig config = getJsonbConfig();
    return JsonbBuilder
      .newBuilder()
      .withConfig(config)
      .build();
  }

  private JsonbConfig getJsonbConfig() {
    return new JsonbConfig()
      .withDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", null);
  }
}
以及: