我有一个旧版 API(没有开发支持),我正在从中提取数据。下面是activity().outputs.body.data的输出
{
"column_id": 1,
"type": "text",
"varname": "foo_id",
"label": "Foo ID",
"value": "1234",
"is_core": "yes",
"orig_label": "Foo ID"
},
{
"column_id": 23,
"type": "text",
"varname": "Foo_name",
"label": "Foo name",
"value": "blah blah",
"is_core": "yes",
"orig_label": "Foo name"
},
{
"column_id": 15,
"type": "text",
"varname": "foo_bar",
"label": "Foo Bar",
"value": "beers beers beers",
"is_core": "yes",
"orig_label": "Foo Bar"
}
不幸的是,数据的结构方式是,如果前端有空值,那么 API 不会传递对象。所以,你可能会在 JSON 中得到 10 个对象,也可能会得到 4 个。这意味着我不能偷懒,通过 data[1].value 选择值。
我需要动态搜索 varname,然后在 that 对象中选择值。
到目前为止,我有这样的事情:
@substring(coalesce(activity().outputs?.body?.data, ''),'foo_id').value
如果该对象存在,我想在上面返回“1234”,或者如果它不存在 - 只需传递一个“”
但是我没有得到我期望的输出。一旦我悬置了动态内容字符串,我就可以完成其余的事情 - 但我陷入了这一方面。
希望有人可以帮助解决动态内容查询字符串。
创建一个新的字符串变量来存储所需输出的值。将该字符串的默认值指定为空字符串。
您可以为从旧 API 提取数据的 Web 活动旁边的每个活动添加 。在for-each设置项中,给出动态表达式为
@activity().outputs?.body?.data
。
在 for-each 活动中,采用 if 活动并将 if 活动的动态条件指定为
@equals(item().varname,'foo2_id')
。
@item().value
.