json 使用动态键获取数组

frebpwbc  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(134)

我正在尝试从一个网络服务中获取一些消息。在数据内部,键是动态的,我正在尝试从数组中获取所有消息,并将它们连接到错误消息中。

{
  "success": false,
  "message": "Eroare validare date",
  "data": {
    "driver.0.name": [
      "Trebuie să menționați nume/denumire pentru șofer"
    ],
    "driver.1.name": [
      "Trebuie să menționați nume/denumire pentru șofer"
    ],
    "driver.1tin": [
      "CNP/CUI invalid pentru șofer"
    ],
    "vehicle.card": [
      "Serie CIV invalidă pentru vehiculul asigurat"
    ]
  }
}

我写了这个规范:

[
  {
    "operation": "shift",
    "spec": {
      "message": "body.info_message",
      "data": {
        "*": {
          "*": {
            "#1": "body.error_message"
          }
        }
      }
    }
  }

但我不知道如何定位信息

f87krz0w

f87krz0w1#

您可以连续使用shift,然后使用modify转换沿着***join***函数,例如

[
  {
    "operation": "shift",
    "spec": {
      "message": "body.info_message", // changed the key name
      "data": {
        "*": {
          "*": "body.error_message" // combine whole content nested within a single array
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "error_message": "=join(' | ',@(1,&))"
      }
    }
  }
]

为了生成用于错误消息的管道分离内容

{
  "body" : {
    "info_message" : "Eroare validare date",
    "error_message" : "Trebuie s? men?iona?i nume/denumire pentru ?ofer | Trebuie s? men?iona?i nume/denumire pentru ?ofer | CNP/CUI invalid pentru ?ofer | Serie CIV invalid? pentru vehiculul asigurat"
  }
}

相关问题