1

我正在使用 swagger-jaxrs_2.10.0 版本 1.2.3(刚刚从 1.2.2 升级,结果相同)

如果我有这样的课程:

public class XXXResponse
{
    private List<Boolean> booleans;
    private List<Byte> bytes;
    private List<Short> shorts;
    private List<Integer> integers;
    private List<Long> longs;
    private List<Float> floats;
    private List<Double> doubles;
    private List<String> strings;
    private List<Date> dates;

    // set/get methods
}

Swagger 将其报告为:

{
  "integers": [
    "int"
  ],
  "bytes": [
    "any"
  ],
  "longs": [
    "any"
  ],
  "dates": [
    "any"
  ],
  "shorts": [
    "any"
  ],
  "strings": [
    "string"
  ],
  "doubles": [
    "any"
  ],
  "floats": [
    "any"
  ],
  "booleans": [
    "boolean"
  ]
}

我需要什么特定的魔法才能使“任何”变成适当的类型?

4

1 回答 1

1

事实证明,配置 Jackson 成功了:

JacksonJsonProvider.java

@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonJsonProvider extends JacksonJaxbJsonProvider 
{
    private static ObjectMapper commonMapper = null;

    public JacksonJsonProvider() 
    {
        if(commonMapper == null)
        {
            ObjectMapper mapper = new ObjectMapper();

            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            mapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
            mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);    
            commonMapper = mapper;
        }

        super.setMapper(commonMapper);
    }
}
于 2013-05-16T03:48:48.267 回答