【问题标题】:Is there a way to use custom Liquid filters when transforming JSON objects to JSON using Azure logic apps?使用 Azure 逻辑应用将 JSON 对象转换为 JSON 时,是否可以使用自定义 Liquid 筛选器?
【发布时间】:2021-05-23 07:59:46
【问题描述】:

这是我正在阅读的教程的链接: Transform JSON and XML using Liquid templates as maps in Azure Logic Apps。它并没有真正说明使用我可以编码的过滤器,即使 Microsoft 使用 Liquid 的 DotLiquid 实现,它允许制作自定义过滤器。我不确定如何或在哪里可以输入任何定制的过滤器;有人试过这样的吗?

【问题讨论】:

    标签: azure liquid azure-logic-apps dotliquid


    【解决方案1】:

    您在需要转换的 JSON 模板中使用 Liquid 过滤器。 您可以使用以下任何过滤器:

    1. 尺寸
    2. 切片
    3. 小机箱
    4. 网址编码
    5. 网址解码
    6. 大写
    7. 逃跑
    8. 截断
    9. 拆分
    10. StripHtml
    11. 脱衣舞
    12. Lstrip
    13. RsTrip
    14. 货币
    15. StripNewlines
    16. 加入
    17. 排序
    18. 地图
    19. 替换
    20. 先替换
    21. 移除
    22. 先删除
    23. 追加
    24. 前置
    25. 换行符
    26. 日期
    27. 首先
    28. 最后
    29. 加号
    30. 减号
    31. 时代
    32. 圆形
    33. 除以
    34. 取模
    35. 默认
    36. 独特的
    37. 绝对值
    38. 至少
    39. 最多
    40. 紧凑

    在这里你可以查看它的implementation

    要转换为 JSON OUTPUT 的 JSON 模板(注意:请求输入在 {{ }} 内):

    {%- assign deviceList = content.devices | Split: ', ' -%}
    
    {
       "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}",
       "firstNameUpperCase": "{{content.firstName | Upcase}}",
       "phoneAreaCode": "{{content.phone | Slice: 1, 3}}",
       "devices" : [
          {%- for device in deviceList -%}
             {%- if forloop.Last == true -%}
             "{{device}}"
             {%- else -%}
             "{{device}}",
             {%- endif -%}
          {%- endfor -%}
       ]
    }
    

    创建一个邮递员来测试一个带有与模板中的内容对象匹配的 JSON 正文的 POST 请求:

    {
        "content": {
            "devices": "1,2,3,4,5",
            "firstName": "Dean",
            "lastName": "Ledet",
            "phone": "11111111"
        },
        "integrationAccount": {
            "map": {
                "name": "SimpleJsonToJsonTemplate"
            }
        }
    }
    

    将输入的 Json 映射替换为您的 Liquid 映射名称。

    【讨论】:

    • 我了解如何使用 Liquid 及其过滤器来创建模板并感谢您的解释,但我想知道是否有办法在逻辑应用架构中使用我自己的过滤器,因为 Liquid 的 DotLiquid 实现支持创建您自己的过滤器。
    • 不这么认为。只是在 DotLiquid 代码中找到的标准过滤器。
    • @Gutlessmoon7579 您是否找到了是否可以(以及如何)在 Azure 上的液体模板中使用自定义过滤器的答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多