【问题标题】:Whats a good configuration format that is not strict on syntax or format?什么是对语法或格式不严格的好的配置格式?
【发布时间】:2010-07-01 02:40:10
【问题描述】:

我有一个不希望更改的现有系统,我想将元数据/配置/注释添加到现有用户对象/实体。

我不想更改架构或 UI,因此我计划让用户通过用户通常在其中输入描述的对象的描述字段添加此元数据。事实证明这个字段很少使用,但我仍然希望人们能够输入描述,然后输入元数据。

基本上我希望解析器类似于 HTML 解析器,并且不是快速失败

我的直觉是做一些类似于 Java 属性格式但使用正则表达式的事情。 但是属性文件在表示复杂数据方面非常薄弱。

我应该使用现有的非故障快速格式吗?

【问题讨论】:

  • 您能澄清一下您所说的“复杂”数据是什么意思吗?例如,您是在谈论表示对象的简单方法吗?
  • 最多两个 Maps 或 Objects 深度。即地图地图。如此简单的名称值对可以包含另一个名称值对。清楚吗?
  • 是的,有道理(正如您在下面的评论表明您查看了 JSON)。

标签: java configuration properties


【解决方案1】:

以下是标准配置格式的一个很好的列表,每种格式都有优缺点:

http://www.faqs.org/docs/artu/ch05s02.html

所有这些格式都设计为易于手动编辑。

编辑:您在评论中描述了您最多需要两个“层”数据,在这种情况下,我链接到的那个页面的最佳格式是 Windows 样式的 .ini 格式或“Record-Jar”格式。

【讨论】:

  • 我认为 windows ini 样式格式是要走的路。我可能仍然需要编写自己的故障安全解析器,它可以通过 grokking 接受错误的输出。
【解决方案2】:

您的问题似乎并不是真的想要一些不严格的东西 - 而是您希望能够区分描述和元数据。

您可能只使用 XML 并在将其呈现给解析器之前在开始标记之前和结束标记之后删除任何内容。或者,您可以使用任何内容,但需要在描述和元数据之间使用相当独特的字符序列(例如,>>>METADATA<<< 单独一行)。

【讨论】:

  • 是的,我是这么想的,但我不希望人们必须输入 XML。我的意思是 XML 适用于机器。但我确实同意你的拆分方法,这就是我目前使用正则表达式所做的。
  • 即使分离,严格仍然是一个问题。例如,我当前使用拆分技术然后使用 JSON 的解决方案要求 JSON 有效......所以你最好记住不要在对象或数组的末尾有额外的 python 样式逗号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 2011-05-18
  • 2019-11-14
  • 1970-01-01
  • 2015-12-10
  • 2010-09-08
  • 1970-01-01
相关资源
最近更新 更多