簡體   English   中英

JOLT規范中RHS中[]的意義是什么?

[英]what is the significance of [] in RHS in JOLT specification?

我是 JOLT 的新手。 我正在創建一個 JOLT 規范來將 JSON 從一種格式解析為另一種格式。 但是,當我將 RHS 用作"&1.name"時,它無法按預期工作並創建不同的格式。 但是當我使用"[&1].name"時,它起作用了。

由於政策限制,我無法共享數據。 舉個例子

例如。 輸入 JSON:

[
  {
    "name": "my name1"
  },
  {
    "name": "my name2"
  }
]

JOLT 規范(不工作):

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "name": "&1.name"
      }
    }
  }
]

JOLT 規范(工作):

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "name": "[&1].name"
      }
    }
  }
]

請幫助我了解 [] 在 RHS 上的用途。

兩個規范均有效。

&1獲得1個升級

[&1] :獲得 1 級向上索引

例如,在您的規范中, &1表示01作為,您的 output 可以是這樣的:

{
  "0": {
    "name": "my name1"
  },
  "1": {
    "name": "my name2"
  }
}

當您使用[&1]表示01作為數組的索引時,您的 output 可以是這樣的:

[
  {
    "name": "my name1"
  },
  {
    "name": "my name2"
  }
]

您甚至可以通過將右側的name替換為&符號來改寫

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "name": "[&1].&"
      }
    }
  }
]

為了復制它

[&1]&1都放在樹1級別的同一級別上,以便通過遍歷左花括號 ( { ) 一次達到最外層數組的索引級別。 但是第一個產生數組結果而不是索引號 0,1,2... 那些是由第二個產生的。

暫無
暫無

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

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