第 376 章 YAML SnakeYAML DataFormat


作为 Camel 2.17 版提供

YAML 是一个数据格式,用于从 YAML 中汇总和解封 Java 对象。

对于对象 marshalling 的 YAML,Camel 提供三种常见 YAML 库的集成:

每个库都需要添加特殊的 camel 组件(请参阅"Dependency…​"段落进一步下)。默认情况下,Camel 使用 SnakeYAML 库。

376.1. YAML 选项

YAML SnakeYAML 数据格式支持 11 个选项,它们列如下。

名称默认Java 类型描述

library

SnakeYAML

YAMLLibrary

要使用的 yaml 库。默认为 SnakeYAML

unmarshalTypeName

 

字符串

取消armshalling 时要使用的 java 类型的类名称

constructor

 

字符串

构造传入文档的 BaseConstructor。

representer

 

字符串

用来发出传出对象的代表。

dumperOptions

 

字符串

DumperOptions,以配置传出对象。

resolver

 

字符串

检测到隐式类型的解析器

useApplicationContextClassLoader

true

布尔值

使用 ApplicationContextClassLoader 作为自定义类Loader

prettyFlow

false

布尔值

在使用流风格时,强制发出程序生成用户 YAML 文档。

allowAnyType

false

布尔值

允许任何类被取消封(un-marshaled)

typeFilter

 

list

设置 SnakeYAML 允许的 un-marshall 类型

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该以 data 格式设置 Content-Type 标头。例如,用于数据格式的 application/xml (数据格式)或 application/json 用于数据格式 marshalling to JSon etc。

警告

SnakeYAML 可以从 YAML 定义中加载任何类,这可能会导致安全漏洞。默认情况下,SnakeYAML DataForma 限制对象可以加载到标准 Java 对象,如 List 或 Long。如果要载入自定义 POJO,需要将类型添加到 SnakeYAML DataFormat 类型过滤器列表中。如果您的源是可信的,您可以将属性 allowAnyType 设置为 true,因此 SnakeYAML DataForma 不会对类型执行任何过滤器。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.