ClouGence / hasor

Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
http://www.hasor.net
Apache License 2.0
983 stars 273 forks source link

返回结果进行自定义序列化?,比如 为空的列不输出。 #41

Closed tzxylao closed 4 years ago

tzxylao commented 4 years ago

image

zycgit commented 4 years ago

升级到 4.1.6,然后在界面上自定义。 image

第二个方式就是,resultprocess 拦截器 https://www.hasor.net/web/dataway/spi.html#resultprocess

tzxylao commented 4 years ago

@zycgit 我想要实现的是返回结果忽略null字段,fastjson可以实现,就在我截图的图片位置,再给个配置参数就行,但在ResultProcessChainSpi这个调用链上没有response,返回值是对象,不能做这样的处理

tzxylao commented 4 years ago
   @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
// 忽略null字段
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        return objectMapper;
    }

    @JsonIgnore
    private Object source;

其实就是这样,本来我用jackson序列化,返回结果会自动去掉该字段,且null值字段也去掉,那么在此框架如何嵌入该功能

zycgit commented 4 years ago

那还是 open 这个 issue 把,我以为你只是单纯的结果改写。

zycgit commented 4 years ago

在 4.1.7 中会提供一个新的扩展接口 ResultSerializationChainSpi ,通过这个扩展接口可以实现自定义序列化。 可以提前 使用dev 分支来体验这一个功能。

same as https://github.com/zycgit/hasor/issues/41