我正在试着从网络服务那里获取一些消息.在数据内部,键是动态的,我试图从数组中获取所有消息,并在错误消息中将它们连接在一起.

{
  "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"
          }
        }
      }
    }
  }

但我不知道如何定位这些信息

推荐答案

您可以连续使用shiftmodify变换以及102函数,例如

[
  {
    "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"
  }
}

Json相关问答推荐

基于两个条件替换扁平化的SON中的值

如何在使用GO时检测JSON中不需要的字段?

如何在JSONata对象中迭代并向数组添加新字段?

将部分数据字节解组到自定义 struct 中

如何在VB6中将字符串转换或解码为可读格式?

错误:在 NX 工作区中找不到模块../swagger.json

使用 jq 获取所有嵌套键和值

如何强制仅有一个元素的数组在JSON中生成方括号

jq - 将父键值提取为子元素旁边的逗号分隔值

Scala - 在构建 Json 时无法删除 Key -> value "{}" 大括号的双引号

使用带有逗号的字段名称构建 struct

在 rust 中从 API 反序列化 serde_json

为什么JsonConvert反序列化对象以int但不长失败

Angular 2/Web Api - json 解析错误语法错误意外结束输入

如何使用 jq 将 JSON 对象流转换为数组

如何使用 Jackson 注释从 HttpResponse 反序列化 JSON 对象?

如何使用 Serde 反序列化带有自定义函数的可选字段?

Spring restTemplate 获取原始 json 字符串

字符串格式 JSON 字符串给出 KeyError

从调试器获取 IntelliJ Idea 中的 JSON 对象