You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中使用Jackson生成单行格式的YAML数组

解决方法

你可以通过添加Jackson YAML生成器的配置实现需求,分为全局生效和指定字段生效两种方案:

方案1:全局配置所有数组都输出为单行方括号格式

在构建YAMLFactory时额外启用WRITE_ARRAYS_AS_FLOW_STYLE配置即可,修改后的ObjectMapper初始化代码如下:

ObjectMapper objectMapper =
    new ObjectMapper(
        new YAMLFactory()
            .disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER)
            .enable(YAMLGenerator.Feature.MINIMIZE_QUOTES)
            // 新增以下配置,启用流式数组输出
            .enable(YAMLGenerator.Feature.WRITE_ARRAYS_AS_FLOW_STYLE)
            );

配置后所有数组类型字段都会序列化为方括号包裹的单行格式。

方案2:仅指定字段输出为单行方括号格式

如果不需要全局生效,仅希望lists字段用单行数组格式,不需要修改全局配置,直接在对应字段上添加@JsonFormat注解即可:

@Data
private static class Data {
    private String hello;
    private int value;
    // 新增该注解,仅对当前字段生效
    @JsonFormat(shape = JsonFormat.Shape.ARRAY, with = JsonFormat.Feature.WRITE_ARRAYS_AS_FLOW_STYLE)
    private List<String> lists;
}

注意事项

WRITE_ARRAYS_AS_FLOW_STYLE配置从jackson-dataformat-yaml 2.12.0版本开始支持,如果你使用的依赖版本低于该版本,请先升级到2.12.0及以上版本。

内容的提问来源于stack exchange,提问作者Ananya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:15:03