[]
如果示例消息中有对象数组,在添加数组中对象的属性到虚拟实体时,需要为这些属性添加过滤器。
假设我们有一个包含多个用户的JSON数据结构,每个用户有姓名、年龄和地址信息。我们想使用过滤器找出传感器ID为sensor001的信息,下面是一个具体的例子:
原始JSON数据:
{
"topic": "sensor_data",
"payload": [
{
"sensorId": "sensor001",
"temperature": 25.3,
"humidity": 65.2,
"timestamp": "2023-07-09T12:34:56Z"
},
{
"sensorId": "sensor002",
"temperature": 22.1,
"humidity": 72.4,
"timestamp": "2023-07-09T12:34:57Z"
}
]
}设置过滤器:
我们使用表达式 [ sensorId= sensor001 ] 来过滤这个数组。这个表达式的含义是选取sensorId为sensor001的对象。
应用过滤器之后,我们得到的结果只包含sensorId为sensor001的对象:
[
{
"sensorId": "sensor001",
"temperature": 25.3,
"humidity": 65.2,
"timestamp": "2023-07-09T12:34:56Z"
}
]我们的过滤器的效果就与这个例子类似,通过过滤器来筛选数组中的对象。
下面我们将为您演示如何添加过滤器。
在示例消息输入框中输入一个带有对象数组的JSON;
对象数组为JSON对象中的一个属性的值。

我们也支持在示例消息中直接输入对象数组,这样消息结构的根节点就是数组:


上一步单击添加到虚拟实体后,将会弹出添加过滤器对话框。
在对话框中将会呈现一条(或多条)默认的过滤条件,默认的过滤条件无法删除。
过滤条件中JSON字段来自消息结构中数组子节点,下拉框中的选项会隐藏不符合条件的节点,只显示与这个过滤器相关的字段。

过滤条件中的JSON字段将显示字段的路径表达式,以object或array开始,后跟一系列的路径片段至字段名。
过滤条件中的JSON字段对应消息结构中的数组节点下非数组和对象字段。
可手动添加过滤条件,新增的过滤条件与原过滤条件是与的关系。
手动添加的过滤条件可删除。

添加好过滤条件后即可点击确定;
系统将为选中的所有数组节点下的字段添加这些过滤条件;
单击确定后系统将自动关闭过滤器并将选中的节点添加到指定的虚拟实体中。

点击对话框中右上角的X号或右下角的取消按钮可关闭添加过滤器对话框。
关闭对话框后选中的节点将保持选中状态并且不会被添加到虚拟实体中。
