[英]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
表示0
和1
作為鍵,您的 output 可以是這樣的:
{
"0": {
"name": "my name1"
},
"1": {
"name": "my name2"
}
}
當您使用[&1]
表示0
和1
作為數組的索引時,您的 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.