在Logic Apps的DotLiquid转换中按长度拆分字符串的方法
在Logic Apps的DotLiquid中拆分字符串并生成指定JSON结构
要实现将指定字符串拆分为最长35字符的片段,并生成JSON数组结构,你可以直接利用DotLiquid的slice过滤器和while循环完成,具体实现如下:
核心DotLiquid模板代码
假设你传入Logic Apps的原始字符串变量名为inputString,对应的DotLiquid模板如下:
{ "segments": [ {% assign remaining = inputString %} {% while remaining.size > 0 %} {% assign segment = remaining | slice: 0, 35 %} "{{ segment }}"{% if remaining.size > 35 %},{% endif %} {% assign remaining = remaining | slice: 35 %} {% endwhile %} ] }
代码逻辑说明
- 初始化剩余字符串:用
remaining变量存储未处理的字符串部分,初始值为完整的输入字符串。 - 循环处理片段:通过
while循环持续处理,直到remaining长度为0:- 每次用
slice: 0, 35截取remaining的前35个字符作为当前片段; - 输出片段的字符串形式,同时判断如果还有剩余内容(长度大于35),就在片段后加逗号,保证JSON语法合法;
- 更新
remaining为截取后剩下的部分(从第35位开始到字符串结尾)。
- 每次用
目标字符串的输出示例
对于输入字符串 VIP tickets John Smith concert today at 4pm and later dinner,生成的JSON结果如下:
{ "segments": [ "VIP tickets John Smith concert today at 4pm", " and later dinner" ] }
(注:实际拆分的具体分界由字符串长度自动计算,确保每段字符数不超过35)
注意事项
- 确保模板中使用的变量名和Logic Apps里传入的参数名完全一致;
slice过滤器在DotLiquid中的语法是slice(start_index, length),slice: 35等价于从索引35开始取到字符串末尾;- 循环中的逗号判断是关键,避免最后一个元素后出现多余逗号导致JSON解析失败。
内容的提问来源于stack exchange,提问作者Mohit Jagtiani
相关产品推荐
相关产品推荐

