0

(LaunchDarkly 新手在这里,第一天摆弄它。)

状态的(Golang)文档func (*LDClient) JSONVariation

JSONVariation 返回特征标志的值...,允许该值是任何 JSON 类型。

该值以 的形式返回ldvalue.Value,可以使用诸如GetType()和之类的 Value 方法对其进行检查或转换为其他类型BoolValue()

因此,给定一个可能值得转换的示例,自然推断BoolValue将是“任何 JSON 类型”至少包括 JSON 布尔类型。

另一方面,JSON 标志类型的文档指出:

JSON 标志可以是对象或数组...

仪表板的“创建功能标志”对话框的行为让我相信它们只能是对象或数组,因为当我在“变体 1”字段中输入类似trueor17"a string"or的值时null,我会在该字段下方得到一点提示上面写着“这必须是有效的 JSON”。

(当然,不要介意 ,和true实际上都是有效的 JSON 值——只是不是有效的对象数组。)17"a string"null

鉴于仪表板施加的这种限制,我怎么能期望JSONVariation使用类似的函数转换由返回的值BoolValue来做任何有用的事情?似乎唯一有意义的转换是AsValueArrayand AsValueMap

一个更好的问题是:是否有某种方式(可能不是仪表板)来定义一个真正可以是“任何 JSON 类型”的 JSON 标志值,而不仅仅是一个对象或数组?

我可能会补充一点,该软件包文档的第一段指出:ldvalue

ldvalue提供了 LaunchDarkly SDK 通用值类型的抽象。LaunchDarkly 支持标准 JSON 数据类型,包括 null、布尔值、数字、字符串、数组和对象(地图),用于任何功能标志变化或自定义用户属性。该ldvalue.Value类型可以包含任何这些。

强调我的。似乎很清楚,意图是我在斜体部分中明确说明的内容。那么,如果仪表板的“创建功能标志”对话框禁止它,我该如何利用它呢?

4

0 回答 0