[英]Extracting value from json using jolt transformation
我有一個 json 對象:
{
"Data" : "{field1: [x,y],
field2: z}",
}
輸出json:
{
"field3": "z"
}
[
{
"operation": "shift",
"spec": {
"Data": {
"*field2:*}*": {
"$(0,2)": "field3"
}
}
}
}
]
這里“Data”的值是一個完整的字符串而不是 json,因此我必須將它分成通配符,現在規范中的第二個“*”給了我值“z”。 有沒有更好的方法來做同樣的事情,比如在 field2 之前或之后有一個新字段,那么我不必修改這個正則表達式。
首先,這不像是 JOLT 中要解決的問題,而是應該提取Data
並將其序列化為 JSON。
那就是說我已經設法使某些東西起作用,內聯解釋:
[
//Remove {
{
"operation": "shift",
"spec": {
"Data": {
"{*": {
"$(0,1)": "Data"
}
}
}
},
//Remove }
{
"operation": "shift",
"spec": {
"Data": {
"*}": {
"$(0,1)": "Data"
}
}
}
},
// Split by ,
{
"operation": "modify-overwrite-beta",
"spec": {
"Data": "=split(',', @(2,Data))"
}
},
// Trim
{
"operation": "modify-overwrite-beta",
"spec": {
"Data": {
"*": "=trim"
}
}
},
// Select field2
{
"operation": "shift",
"spec": {
"Data": {
"*": {
"field2:*": {
"$(0,1)": "field3"
}
}
}
}
},
// Trim again
{
"operation": "modify-overwrite-beta",
"spec": {
"*": "=trim"
}
}
]
針對:
{
"Data": "{field1: [x,y], field2: z}"
}
和
{
"Data": "{ field2: z, field1: [x,y]}"
}
和
{
"Data": "{field1: [x,y], field2: z, field3: [x,y]}"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.