当前位置: 首页 > 知识库问答 >
问题:

Jolt规范将json转换成名称值对

彭星津
2023-03-14

我正在尝试将下面的JSON转换为名称值对:

{
  "Size": "2",
  "done": "true",
  "records": [
    {
      "Id": "a7g6s0000004GZuAAM",
      "NN": "00096411.0",
      "Name": "ISOLIN TRADE & INVEST",
      "RecordType": {
        "attributes": {
          "type": "TestType"
        },
        "Name": "Term"
      }
    },
    {
      "Id": "a7g6s0000004GZzAAM",
      "Number": "00096412.0",
      "Name": "ISOLIN"
    }
  ]
}

应为输出JSON:

{
  "Size" : "2",
  "done" : "true",
  "Items" : [ {
    "Fields" : [ {
      "Name" : "Id",
      "Value" : "a7g6s0000004GZuAAM"
    }, {
      "Name" : "NN",
      "Value" : "00096411.0"
    }, {
      "Name" : "Name",
      "Value" : "ISOLIN TRADE & INVEST"
    }, {
      "Name" : "RecordType_Name",
      "Value" : "Term"
    } ]
  }, {
    "Fields" : [ {
      "Name" : "Id",
      "Value" : "a7g6s0000004GZzAAM"
    }, {
      "Name" : "Number",
      "Value" : "00096412.0"
    }, {
      "Name" : "Name",
      "Value" : "ISOLIN"
    } ]
  } ]
}

我使用了以下jolt规范,但是< code>RecordType元素的转换不符合预期:

颠簸规格 :

json prettyprint-override">[
  {
    "operation": "remove",
    "spec": {
      "records": {
        "*": {
          "attributes": " "
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "records": {
        "*": {
          "*": {
            "$": "Items.&2.[#2].Name",
            "@": "Items.&2.[#2].Value"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "Items": {
        "*": {
          "*": "Items.[#2].Fields[]"
        }
      }
    }
  }
]

如何将其转换为所需的格式?

共有1个答案

祁博涛
2023-03-14

我认为不需要移除转换,最好为每个Field建立索引。

解决方案的诀窍是使用以下命令将RecorType属性与其他属性区分开来

“记录类型”:{“名称”:“字段

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "records": {
        "*": {
          "*": "Field&1.&", 
          "RecordType": {
            "Name": "Field&2.&1\\_&" 
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "Field*": {
        "*": {
          "$": "Items[0].&2.[#2].Name",
          "@": "Items[0].&2.[#2].Value"
        }
      }
    }
  }
]

 类似资料:
  • 想要的输出是 所以基本上,我只想把A型改成AA,B型改成BB。

  • 我有以下输入json: 输出JSON应如下所示: 任何人都可以就如何为上述内容构建适当的 Bump 规范提供任何指导吗? 非常感谢您的帮助 ^_^

  • 我需要在输入 JSON 下方转换以输出 JSON,但不确定如何为该输出编写规范。比较 JOLT 转换中的归档值 以下是输入内容: 预期输出:我需要在输入JSON下方转换为输出JSON,并且不确定如何为该输出编写规范。在JOLT转换中比较文件值。

  • 我需要使用jolt spec在JSON中将(多个)键转换为值,将值转换为键。做这件事的正确规范应该是什么? 输入: 所需输出:

  • 我想使用JOLT将下面的输入json转换为输出json。这里的主要问题是在列表中,我必须删除一些根键(Param1、Param2、…)会动态不同的字段。我尝试了以下规范,但没有成功。在这种情况下需要帮助。

  • 我希望Jolt将一个复杂的json转换为下面所需的json。 输入JSON: 输出量的希望值 我试过遵循Jolt Spec 但得到了以下输出 因此,正如所见,除了最后一个级别值之外,所有其他值都具有具有重复值的数组。任何人都可以帮助解决 Jolt 规范中缺失或错误的地方吗?