首页 > 解决方案 > 使用 jolt 对 json 数组中的数组进行排序

问题描述

我有一个数组,用于在应用程序中显示一些需要订购的文件。

我想知道是否可以动摇“创建日期”的最新“值”。

我们还没有用数组中的数组来实现它

这是条目:

[
  {
    "campos": [
      {
        "nombre_campo": "ID",
        "valor": "1635942768793"
      },
      {
        "nombre_campo": "Fecha creación",
        "valor": "2021-01-04 09:32:48"
      }
    ]
  },
  {
    "campos": [
      {
        "nombre_campo": "ID",
        "valor": "1632417779050"
      },
      {
        "nombre_campo": "Fecha creación",
        "valor": "2021-09-23 14:22:59"
      }
    ]
  }
]

我会:

[
  {
    "campos": [
      {
        "nombre_campo": "ID",
        "valor": "1632417779050"
      },
      {
        "nombre_campo": "Fecha creación",
        "valor": "2021-09-23 14:22:59"
      }
    ]
  },
  {
    "campos": [
      {
        "nombre_campo": "ID",
        "valor": "1635942768793"
      },
      {
        "nombre_campo": "Fecha creación",
        "valor": "2021-01-04 09:32:48"
      }
    ]
  }
]

可能吗?

谢谢

标签: arraysjsonsortingtransformationjolt

解决方案


我们可以在操作后使用排序规范,该操作通过在第一个班次campos规范中使用 替换以值命名的键,因为排序规范没有递减选项,但我们有机会在值增加时获得递减的值。IDcampos[0].valor( eg. &[0].valor - "the valor values within the first indexes" )IDFecha creación(eg. Creation date )

因此,请考虑应用以下规格

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "@(1,&[0].valor)"
      }
    }
  },
  {
    "operation": "sort"
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&.campos"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": ""
    }
  }
]

在此处输入图像描述


推荐阅读