首页 > 其他分享 >TOML 和 YAML

TOML 和 YAML

时间:2023-11-08 17:36:32浏览次数:28  
标签:Java 配置文件 YAML 文件格式 使用 TOML

TOML 和 YAML 都是用于存储和传输数据的格式,但它们有一些重要的区别¹²³:


- **数据类型**:YAML 是一种数据格式,而 TOML 是一种数据格式。YAML 使用缩进来定义结构化数据,而 TOML 使用键值对和表(类似于节)来定义结构¹²³。


- **语法**:YAML 使用冒号和缩进来定义结构,而 TOML 使用等号和方括号来定义结构¹²³。


- **易读性**:YAML 和 TOML 都设计为易于阅读和编写。然而,TOML 的语法更简洁,没有 YAML 那么多的冒号和缩进¹²³。


- **注释**:YAML 和 TOML 都支持注释。在 YAML 中,你可以使用井号 (`#`) 来添加注释。在 TOML 中,你也可以使用井号 (`#`) 来添加注释¹²³。


对于 Python、C# 和 Java,推荐的配置文件格式可能会因应用的具体需求而有所不同。以下是一些一般的建议:


- **Python**:Python 社区中,JSON、YAML 和 TOML 都是常见的配置文件格式⁶⁷⁸。JSON 是 Python 标准库的一部分,易于使用,但不支持注释。YAML 和 TOML 都支持注释,但需要额外的库来解析。YAML 的语法更为复杂,但更适合表示复杂的数据结构。TOML 的语法更简单,更适合表示层次结构¹²³⁶⁷⁸。


- **C#**:在 C# 中,常见的配置文件格式是 XML 和 JSON[^10^]¹²¹³¹⁴。XML 是 .NET 框架的一部分,易于使用,但语法较为复杂。JSON 语法更简单,但不支持注释。尽管如此,JSON 仍然是一个很好的选择,因为它更易于阅读,更易于处理,且出错的可能性较小⁸。


- **Java**:在 Java 中,常见的配置文件格式是 XML 和 Properties¹⁵¹⁶。XML 是 Java 标准库的一部分,易于使用,但语法较为复杂。Properties 文件是键值对的列表,易于使用,但不支持复杂的数据结构。YAML 也是一个选项,尤其是在使用 Spring 框架的情况下¹⁵¹⁶¹⁷。


TOML和YAML都是流行的配置文件格式,它们各有优势和劣势。


**TOML**的优势⁴³:

- TOML旨在成为一个语义明显且易于阅读的最小化配置文件格式。

- TOML重点在“小”上,支持的数据类型也很丰富。

- 风格上像是ini的扩展。


**YAML**的优势⁵⁸⁷:

- YAML的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达。

- YAML是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。

- YAML中没有额外的定界符,所以相比JSON或者XML更轻量级。

- YAML使数据更易于理解,因此常用于配置文件中。


对于Python、C#和Java的配置文件推荐:


**Python**:项目中常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py¹¹。


**C#**:配置文件一般分为内置配置文和用户自定义配置文件。内置配置文件包括app.config、web.config、Settings.settings等等。用户自定义配置文件一般是将配置信息放到XML文件或注册表中¹³。


**Java**:Java的配置文件推荐使用.properties或.xml格式[^20^]。Spring框架推荐使用Java配置²¹。



标签:Java,配置文件,YAML,文件格式,使用,TOML
From: https://blog.51cto.com/u_16055028/8256827

相关文章

  • YAML和TOML都支持多种数据类型
    YAML和TOML都支持多种数据类型,但它们在某些方面有所不同¹⁴。**YAML**支持的数据类型包括¹:-对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary)-数组:一组按次序排列的值,又称为序列(sequence)/列表(list)-纯量(scalars):单个的、不可再分的值-字符串-布尔值-......
  • springboot nacos使用yaml配置list方式
    方式一配置项:app:demo:list1:xiaohong,xiaominglist2:>xiaohong,xiaominglist1和list2看起来是2种风格,其实都是同一种写法,以逗号分隔java代码:@Data@ComponentpublicclassAppConfig1{@Value("${app.demo.list1}")privateList<Strin......
  • pytest + yaml 框架 -39.多账号操作解决方案
    前言最近有小伙伴提到,有写场景需要用到2个账号来回切换操作该如何解决。(备注:从v1.2.4以后新版本不再公开,新功能内部VIP学员可以使用,公开版本仅解决bug,不提供新功能了。)先获取账号token前面教程有讲到全局登录一次,后面所有的请求都会拿着全局登录的账号token去访问请求。......
  • doris FE启动异常:org.yaml.snakeyaml.representer.Representer: method <init>()V not
    dorisFF启动异常,异常信息如下:  2023-11-0109:53:22,691INFO(main|1)[PaloFe.start():124]PaloFEstarting...2023-11-0109:53:22,699INFO(main|1)[FrontendOptions.analyzePriorityCidrs():107]configuredprior_cidrsvalue:10.252.226.5/242023-11-0109:5......
  • SAP Fiori Elements 应用里的 ui5.yaml 文件详解试读版
    本教程第4篇文章,我们介绍了本地启动SAPFioriElements应用的三种模式。4.SAPFioriElements本地应用启动的三种模式辨析以默认方式即命令行yarnstart启动之后,项目文件夹里的ui5.yaml文件会默认被加载并解析。ui5.yaml这个文件,在本地开发FreestyleUI5时也会遇到,笔......
  • SAP Fiori Elements 应用里的 ui5-local.yaml
    SAPFioriElements是SAP的一种开发框架,用于快速构建SAPFiori应用程序。SAPFioriElements应用程序的一个重要方面是模拟服务器(mockserver),它允许在本地开发环境中模拟OData服务,以便在没有真实后端服务的情况下进行开发和测试。ui5-local.yaml文件用于配置本地开发环境,......
  • 【AutoML】AutoKeras 的安装和环境配置(VSCode)
    本地环境中已经有太多的工作配置了(Python、Java、Maven、Docker等等),为了不影响其他环境运行,我选择直接在VSCode中创建工作空间并配置好AutoKeras(反正最后也是要在VSCode中进行开发的)。<br>打开VSCode后先创建一个工作区,然后在终端运行以下代码:python3-mvenvautokeras-......
  • Spring @ConfigurationProperties Yaml语法配置List和Map:List<String>、List<Obj>、L
    yaml语法数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。例子:配置类YmalConfig:importcn.hutool.json.JSONUtil;importlombok.Data;importorg.springframework.boot.context.properti......
  • pytest-yaml 测试平台-3.创建执行任务定时执行用例
    前言当项目用例编写完成后,需设置执行策略,可以用到定时任务设置每天几点执行。或者间隔几个小时执行一次。创建定时任务创建任务勾选需要执行的项目以及运行环境触发器可以支持2种方式:interval间隔多久触发和cron表达式定时执行方式1:interval触发器,间隔10分钟执行一次,......
  • pytest + yaml 框架 -55. raw 不转义模板语法
    前言在yaml文件中,设置的引用变量语法是${var},最近有小伙伴提到一个需求:请求参数的内容需要有特殊符号${var},希望不被转义,不要引用变量,直接用原始数据即可。raw忽略模板语法Jinja2提供了"raw"语句来忽略所有模板语法。语法示例{%raw%}hello${var}world!{%endraw%......