将字符串解析为 Vega Spec 中的 JSON 对象

问题描述

我正在 Kibana 中开发一个 Vega 可视化,它只显示一个项目符号列表和一个“应用”按钮。 目标是用户可以单击这些列表项中的一个或多个以选择它们,然后单击“应用”按钮。然后,“应用”按钮使用 kibanaAddFilter 函数对所有选定值应用 Kibana 过滤器。

为了实现这种多选功能,我在 Vega 中维护了一个字符串信号 selectedValues,当用户单击带项目符号的项目时,它会更新。 信号以适当的 JSON 语法和 Kibana 过滤器查询语法进行维护,以便它可以直接传递给 kibanaAddFilter 函数进行过滤。

示例:

selectedValues = "{\"bool\":{\"must\":[{\"match\":{\"myField1\":\"SELECTED_VALUE_1\"}},{\"match\": { \"myField2\":\"SELECTED_VALUE_2\"}}]}}"

点击“应用”按钮后,我使用 selectedValues 信号的值通过将其传递给 kibanaAddFilter 来应用 Kibana 过滤器。

问题:

由于这是一个字符串信号,因此查询也作为字符串应用,这是错误的并返回“Bad Request”错误。它应该是一个 JSON 对象。

我可以将此字符串信号解析为 Vega 规范中的 JSON 对象吗? 据我观察,JSON.parse() 或任何其他 Javascript 函数在 Vega 中不起作用。

或者更确切地说,我可以以某种方式完全跳过这个字符串信号并以某种方式直接在 Vega 中维护选择,然后将选择应用为过滤器吗?

请注意过滤器必须是 bool 查询,因为查询中有多个条件。

任何帮助将不胜感激。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)