【发布时间】:2020-12-01 21:12:32
【问题描述】:
我在 Azure 逻辑应用中有一个工作流,它执行 API 调用以从 Trello 卡中获取自定义字段值。然后,我放置了一个“for each”步骤来获取每个自定义字段的定义(字段名称)。这是通过调用 Trello API 的另一种方法来实现的。我想根据从这些 API 调用中获得的值创建一个 JSON 对象。 JSON的格式很简单:
{
"name1": "value1",
"name2": "value2",
...
}
编辑:
我有一个具有此架构的初始对象:
{
"Cel": "",
"City": "",
"CreatedOn": "",
"Lead": "",
"Mail": "",
"Brand": "",
"Name": "",
"Salesperson": ""
}
这是一个简单的带有键值对的 json 对象。
我想为每个循环设置对象属性。我从 Trello API 获得了字段的值(返回一个类似的数组):
[{"id":"5fbdb5da1626b7499d690ebf","value":{"date":"2020-11-09T15:00:00.000Z"},"idCustomField":"5fbdb5cee93a775e4a9405e5","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946e31680220774095ed9","idValue":"5fa9464bd260145aacba03ed","idCustomField":"5fa9462327f2c331a184a483","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946e0dafc5b7ead25411a","value":{"text":"Lilia Noemi Cabral"},"idCustomField":"5fa9454303ee497b7b99772a","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946bf8697d18d58b73ac1","value":{"text":"Tania"},"idCustomField":"5fa94518f410418c57662fd0","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946c3a2ee2771d26ba30e","value":{"text":"tania@gmail.com"},"idCustomField":"5fa945088fc819708d157c5b","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946bc38b469081857ea9a","value":{"text":"Asuncion"},"idCustomField":"5fa944fe9d7af62b3806c8b6","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946b82bbaf938c4c3c341","value":{"number":"098234567"},"idCustomField":"5fa944e59527342399f460e2","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"},{"id":"5fa946b32aad4d323ba0648e","value":{"text":"Tania Cardozo Olivera"},"idCustomField":"5fa944d779089c6ca5cf534b","idModel":"5fa53d647b35d5744fd8b856","modelType":"card"}]
我为每个步骤添加了一个迭代和解析字段值。我通过另一个对 Trello API 的调用获得了字段名称,它返回了这个响应:
{"id":"5fa94518f410418c57662fd0","idModel":"5f988b8cb225cc7ac34deae9","modelType":"board","fieldGroup":"53eb88d2e4cde013cb9f03e7500ad1a00a4c82f153f9165f7b1ec554f4cc2d74","display":{"cardFront":true},"name":"Name","pos":81920,"type":"text","limits":{"customFieldOptions":{"perField":{"status":"ok","disableAt":50,"warnAt":45}}},"isSuggestedField":false}
所以,我匹配了 idCustomField 以获取字段名称和字段值。现在我想在初始声明的对象中设置属性(每个属性名称都等于 Trello 中的自定义字段名称)
我尝试过使用 compose 步骤:
setProperty(variables('Object'),body('Parse_JSON')?['name'],body('Parse_JSON2')?['text'])
稍后将变量对象设置为撰写输出,但不能正常工作。结果对象没有设置所有属性。我的想法是在 for each 循环中设置所有对象属性。
我做错了什么?
有没有办法在 Azure 逻辑应用中实现这一点?
提前致谢!
【问题讨论】:
-
您好,我对您的情况有些困惑。您能否提供您的自定义字段格式示例?或者提供一些你当前逻辑应用的截图?
-
感谢您的回复@HuryShen。我已经编辑了帖子以添加更多信息
-
好的,我会检查你的更新要求。
-
您的描述似乎有点复杂。我还有两点不明白:1.你没有提到如何匹配
idCustomField。 2.数组中并不是所有的item都有text这个字段,那么对于没有text字段的item你要怎么处理呢。 -
首先,我调用 Trello API 来获取所有 customFields(json 数组)。 for each 使用此数组迭代单个 customField。在每次迭代中,我进行了第二次 API 调用以获取自定义字段的定义(使用 idCustomField)并返回一个带有字段名称和其他定义的 json。我已经使用嵌套条件(字段可能是文本、日期或数字)解决了没有文本字段的项目。我设法在每次迭代中正确获取字段名称及其值,但我面临将这些值设置为对象属性的问题
标签: azure-logic-apps