[英]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.