我想用Jolt替换JSON中的值,但我还没能做到.

我的JSON:

{
  "MIRecord": [
    {
      "RowIndex": "0",
      "NameValue": [
        {
          "Name": "MBWHLO",
          "Value": "123"
        },
        {
          "Name": "MBITNO",
          "Value": "123"
        },
        {
          "Name": "V_NETA",
          "Value": "123"
        }
      ]
    },
    {
      "RowIndex": "1",
      "NameValue": [
        {
          "Name": "MBWHLO",
          "Value": "123"
        },
        {
          "Name": "MBITNO",
          "Value": "123"
        },
        {
          "Name": "V_NETA",
          "Value": "123"
        }
      ]
    }
  ]
}

我想更换:

  • MBWHLO%至CHANGE1%
  • MBITNO%至CHANGE2%
  • V_NETA%至CHANGE3%

我的目标JSON:

{
  "MIRecord": [
    {
      "RowIndex": "0",
      "NameValue": [
        {
          "Name": "CHANGE1",
          "Value": "123"
        },
        {
          "Name": "CHANGE2",
          "Value": "123"
        },
        {
          "Name": "CHANGE3",
          "Value": "123"
        }
      ]
    },
    {
      "RowIndex": "1",
      "NameValue": [
        {
          "Name": "CHANGE1",
          "Value": "123"
        },
        {
          "Name": "CHANGE2",
          "Value": "123"
        },
        {
          "Name": "CHANGE13",
          "Value": "123"
        }
      ]
    }
  ]
}

我try 执行此操作,但将所有"name"值更改为change1

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "MIRecord": {
        "*": {
          "NameValue": {
            "*": {
              "Name": "CHANGE1"
            }
          }
        }
      }
    }
  }
]

我不知道我是否使用了正确的函数来替换,或者是否需要重新构建整个json.但我希望避免重做json,因为输入JSON不是静态的.

有谁有解决方案吗?

推荐答案

您可以使用100通配符来定义新的固定值,同时有条件地匹配shift转换中的每个值,例如

[
  {
    "operation": "shift",
    "spec": {
      "MIRecord": {
        "*": {
          "NameValue": {
            "*": {
              "Name": {
                "MBWHLO": { "#CHANGE1": "&6[&5].&4[&3].&2" },
                "MBITNO": { "#CHANGE2": "&6[&5].&4[&3].&2" },
                "V_NETA": { "#CHANGE3": "&6[&5].&4[&3].&2" }
              },
              "*": "&4[&3].&2[&1].&"
            }
          },
          "*": "&2[&1].&"
        }
      }
    }
  }
]

现场http://jolt-demo.appspot.com/上的101个是:

enter image description here

Json相关问答推荐

Jolt将键和值转换为单独的数组集

如何判断响应数组是否存在以及S是否有其他内容...?

Jolt变换将字段移动到数组的每个元素中

重构JOLT代码以获得预期输出

如何使用jq使用子值对象的键对json对象进行分组

Vega-Lite规范:尽管在规范中提供了数据,但显示空图表

具有 (RegEx) 模式的 json-schema 中的枚举

如何在 terraform 输出中打印一组用户信息

如何使用 jq 将字符串数组转换为对象?

在 CodePipeline 中调用 lambda 时传递用户参数

Flutter:在本地文件 json 中搜索特殊的阿拉伯字符

序列化特定类型时如何使 JSON.Net 序列化程序调用 ToString()?

使用 c# 通用地展平 Json

使用 gson 反序列化对象的特定 JSON 字段

如何使用 LWP 发出 JSON POST 请求?

MySQL Select JSON 字段属性具有值的位置

杰克逊在通用列表中读取 json

如何从 MVC 控制器返回 Json 对象以查看

从 JSON 到 JSONL 的 Python 转换

用 JSON 编写 HTML 字符串