You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Logic App或Dot Liquid中按创建日期排序JSON数组并获取最新项失败求助

解决Logic App中Liquid映射获取最新日期集合的问题

原代码的问题分析

你的Liquid代码存在几个关键错误,导致返回空值:

  1. 数组访问错误:content是一个数组,没有直接的properties属性,你需要直接操作content数组中的每个元素,而非content.properties。
  2. 过滤器大小写错误:Liquid的排序过滤器是小写的sort,不是大写的Sort。
  3. 循环变量引用错误:循环中你用current.id访问属性,但current是整个排序后的数组,应该用循环变量item来访问单个元素的属性。

修正后的解决方案

方案1:直接获取最新的单个集合项

如果只需要按created日期最晚的那一项,可先排序再取数组第一个元素:

{% assign sortedItems = content | sort: "properties.created" | reverse %}
{% assign latestItem = sortedItems[0].properties %}
{
  "id": "{{ latestItem.id }}",
  "owner": "{{ latestItem.owner }}",
  "created": "{{ latestItem.created }}",
  "updated": "{{ latestItem.updated }}",
  "revision": "{{ latestItem.revision }}"
}

方案2:按日期降序遍历所有项

如果需要遍历所有项并按从新到旧的顺序输出:

{% assign sortedItems = content | sort: "properties.created" | reverse %}
[
{%- for item in sortedItems -%}
  {
    "id": "{{ item.properties.id }}",
    "owner": "{{ item.properties.owner }}",
    "created": "{{ item.properties.created }}",
    "updated": "{{ item.properties.updated }}",
    "revision": "{{ item.properties.revision }}"
  }{%- unless forloop.last -%},{%- endunless -%}
{%- endfor -%}
]

代码解释

  • content | sort: "properties.created":对content数组中的每个元素,根据其properties.created字段进行升序排序(旧日期在前)。
  • reverse:将排序后的数组反转,变成降序排列(最新日期在前)。
  • sortedItems[0].properties:直接取反转后数组的第一个元素,也就是最新的集合项。
  • 循环中使用item.properties.xxx访问每个元素的具体属性,确保正确获取值。

内容的提问来源于stack exchange,提问作者Mohit Jagtiani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:33:12