问题标签 [hocon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
689 浏览

scala - 在 pureconfig 中表示 Either

我有一个这样的 HOCON 配置:

我想用pureconfig解析它。我如何表示 URL 可以是字符串或多个 url 的映射,每个 url 都有一个键?

我试过这个:

但它导致“预期类型 OBJECT。找到 STRING。”

我知道 pureconfig 支持Option. 我发现没有提到支持Either,是不是意味着它可以用其他东西代替?

0 投票
0 回答
359 浏览

string - HOCON 转义双引号

HOCON 游乐场:https ://hocon-playground.herokuapp.com/

这是我想要实现的目标:

我需要最终结果是:

{ "HOCON" : "{host =~ "hi*"}", "lbid" : "hi*" }

我得到的是:

输入:

lbid="hi*" HOCON = "{host =~ \""${lbid}"\"}"

输出: { "HOCON" : "{host =~ \"hi*\"}", "lbid" : "hi*" }

有人能告诉我如何在存在多个双引号的情况下转义双引号吗?我需要双引号内的整个字符串,例如(“hi *”)。

hi 值也来自一个变量。这使事情变得有点复杂,并且没有提供预期的输出。

0 投票
0 回答
192 浏览

javabeans - 将 Typesafe 配置映射到 bean 类 (ConfigBeanFactory) 时,有没有办法标记拼写错误的属性?

我们的应用程序使用 reference.conf 为我们的 POJO 之一提供默认值,该 POJO 带有配置信息。假设 Pojo 是:

reference.conf 具有默认值:

因此,如果您的 application.conf 有:

因此,当你这样做时:

你会用 first/last == mike/shmoe 找回一个 Person

现在..说我有一些用户没有得到足够的睡眠,其中一个人像这样错误地配置了他们的应用程序(拼写错误“first”):

我现在做事的方式是从此配置加载的 Pojo 具有默认的 first/last == joe/shmoe。没有关于拼写错误(“frist”)的警告。

我可以编写代码来反映我的 Bean 类,并查看用户提供的哪些属性与可用的设置器不对应,然后在发现任何“错误”属性时引发错误。
但似乎有人(甚至可能是 Typesafe 配置基础库)必须已经拥有此功能。

任何指向一个好的现有方法的指针都非常感谢。

0 投票
1 回答
250 浏览

scala - 如果使用替换,HOCON 不会覆盖值

我正在使用一个 HOCON 配置文件,它也有替换变量。但是在替换变量的情况下,键不会被同一个文件中的另一个值覆盖。例如,考虑以下 HOCON 配置:

现在,当我从 ConfigFactor.parseURL 加载它时,生成的配置是:

这里y必须解决,但这不会发生在z.

问题:

  1. 这个输出的原因是什么?
  2. 如何也可以解析“z”?
0 投票
1 回答
82 浏览

java - 我们是否有一个适当的可序列化 HOCON 来尊重顺序或在 java 中进行内联替换?

我正在用 java 开发一个应用程序,它有一个配置文件(我选择 HOCON,如果我们有其他选项,请告诉我哪个符合我的要求)和一个用于编辑配置文件的 UI。

用户可以直接编辑配置文件,也可以使用 UI。配置文件可以有注释。

如果用户使用 UI 来编辑文件,我需要在他们点击保存时更新配置文件。

我正在使用lightbend/config来读取和写入配置文件。

但是写作的问题是它不保持参数的顺序并且注释混乱。见下图:

在此处输入图像描述

我的要求是有一个可以维护注释和参数顺序的编写器,因为您可以看到,如果某些注释丢失,它对用户不友好。

是否可以使用 lightbend/config 或者是否有任何其他配置阅读器和编写器可以满足我的要求?

如果我们有能够满足我要求的读写器,我什至准备使用 HOCON 以外的其他配置格式。

由于我的配置要求很复杂,属性文件不是一个很好的选择。

0 投票
0 回答
35 浏览

typesafe - HOCON : 如何限制基数包括

我正在使用 HOCON 配置文件,其中有一个基本文件,例如

有 2 个派生的 conf,如下 Conf1

会议2

我需要像 Conf1 应该包含"Key1" 和 "Key3"的结果,而 Conf2 应该包含"Key1","Key2" 和 "Key4"。我可以使用 hocon 基本配置来实现这一点吗?

0 投票
0 回答
369 浏览

java - 将 HOCON 字符串转换为有效 json 字符串的库或算法

我仅限于hocon在我们的 java 应用程序中使用我们的配置文件。我的问题是我无法更改格式,但我现在需要将其存储在另一个只接受平面yaml文件的后端。

示例app.conf文件:

尝试 1:hocon使用 TypesafeConfig 读取和解析文件:

出现这种情况有2个问题:

  • mapper.readTree抛出错误,因为第二个条目play.http.port不是数字并且没有引用,${?HTTP_PORT}是文字值;如果未引用该值,我想保留 hocon 的功能,其中包括 env 替换。

  • 即使这些值已转换为合法值 - 当它转换为 json 时,它也会被最后一个值覆盖。这打破了与 hocon 的功能对等性。

关于如何利用 typeSafe 配置功能将 conf 打印为半有效 json 的任何想法。

除非我能够操纵值的结果,否则我不能使用打包的 json 解析器。我在谷歌上搜索了一些关于如何自定义读取值的信息,但我认为目前不可能。

预期输出:为所有值添加引号并将值附加__replace__到具有重复键的所有键并具有环境变量

请证明我错了!或者提出一个想法!那里有 yaml 格式解析器的 hocon 格式吗?

0 投票
3 回答
528 浏览

scala - 将 Hocon 配置读取为 Map[String, String],其中键为点符号和值

我有以下 HOCON 配置:

HOCON 将路径“bcd”和“dfg”表示为对象。所以,我想要一个阅读器,它将这些配置读取为 Map[String, String],例如:

我创建了一个阅读器并尝试以递归方式进行操作:

它给了我正确的结果,但有没有办法在这里避免 MutableMap?

PS 另外,我想通过“pureconfig”阅读器继续实施。

0 投票
0 回答
150 浏览

scala - 如何在运行时将 hocon 配置动态加载到案例类中

我正在开发一个库,它将采用用户配置 hocon 和用户提供案例类(在用户应用程序的类路径中),我需要在运行时动态地将 hocon 配置读取到案例类。动态我的意思是我在编译时不知道案例类,我只会通过用户输入在运行时知道案例类。

如何使用类名或 ClassTag 将 hocon 读入案例类?我曾尝试在 tsconfig 周围使用 pureconfig 或 kxbmap/configs 和其他 scala 包装器,但这些在编译时需要案例类信息。

无论如何或有任何工具可以在运行时动态读取 hocon 到案例类?

0 投票
1 回答
88 浏览

logging - 如何审查/隐藏 HOCON 值使其不会出现在 Ktor 日志中

使用 Ktor 作为 Web 服务器并使用 (HOCON) application.conf 文件对其进行配置。

我已经在配置中设置了用于连接数据库的默认密码,以及使用环境变量覆盖它的能力。

当服务器启动时,配置会打印到控制台(并且将来可能存储在日志中),问题是密码是显而易见的。

有谁知道防止这种情况的方法?

代表application.conf:

示例服务器输出