(LaunchDarkly 新手在这里,第一天摆弄它。)
状态的(Golang)文档func (*LDClient) JSONVariation
:
JSONVariation 返回特征标志的值...,允许该值是任何 JSON 类型。
该值以 的形式返回
ldvalue.Value
,可以使用诸如GetType()
和之类的 Value 方法对其进行检查或转换为其他类型BoolValue()
。
因此,给定一个可能值得转换的示例,自然推断BoolValue
将是“任何 JSON 类型”至少包括 JSON 布尔类型。
另一方面,JSON 标志类型的文档指出:
JSON 标志可以是对象或数组...
仪表板的“创建功能标志”对话框的行为让我相信它们只能是对象或数组,因为当我在“变体 1”字段中输入类似true
or17
或"a string"
or的值时null
,我会在该字段下方得到一点提示上面写着“这必须是有效的 JSON”。
(当然,不要介意 ,和true
实际上都是有效的 JSON 值——只是不是有效的对象或数组值。)17
"a string"
null
鉴于仪表板施加的这种限制,我怎么能期望JSONVariation
使用类似的函数转换由返回的值BoolValue
来做任何有用的事情?似乎唯一有意义的转换是AsValueArray
and AsValueMap
。
一个更好的问题是:是否有某种方式(可能不是仪表板)来定义一个真正可以是“任何 JSON 类型”的 JSON 标志值,而不仅仅是一个对象或数组?
我可能会补充一点,该软件包文档的第一段指出:ldvalue
包
ldvalue
提供了 LaunchDarkly SDK 通用值类型的抽象。LaunchDarkly 支持标准 JSON 数据类型,包括 null、布尔值、数字、字符串、数组和对象(地图),用于任何功能标志变化或自定义用户属性。该ldvalue.Value
类型可以包含任何这些。
强调我的。似乎很清楚,意图是我在斜体部分中明确说明的内容。那么,如果仪表板的“创建功能标志”对话框禁止它,我该如何利用它呢?