簡體   English   中英

將 json 轉換為名稱值對的 Jolt 規范

[英]Jolt specification to transform json into name value pair

我正在嘗試將 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"
    }
  ]
}

期待 output 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 規范,但RecordType元素的轉換不如預期:

顛簸規格:

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

如何將其轉換為所需的格式?

我認為不需要刪除轉換,最好為每個Field編制索引。

解決方案的訣竅是通過使用將RecordType屬性與其他屬性區分開來

"RecordType": {"Name": "Field&2.&1\\_&"}

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

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM