【发布时间】:2022-01-05 13:40:21
【问题描述】:
具有以下输入 json:
{
"familyMembers": [
{
"name": "Richard",
"living": "Yes"
},
{
"name": "Napoleon",
"living": "No"
}
]
}
目标是将"living": "Yes" 更改为"living": "true",以便所需的输出 如下所示:
{
"familyMembers" : [
{
"firstName" : "Richard",
"living": "true"
},
{
"firstName" : "Napoleon",
"living": "false"
}
]
}
以下规范不会产生所需的输出:
[
{
"operation": "shift",
"spec": {
"familyMembers": {
"*": {
"name": "familyMembers[&1].firstName",
"living": {
"Yes": {
"#true": "familyMembers[&1].living"
},
"*": {
"#false": "familyMembers[&1].living"
}
}
}
}
}
}
]
不包括living 字段。
如果 familyMember 从数组更改为映射,则 living 字段将包含在输出中,并具有预期值,如下例所示:http://jolt-demo.appspot.com/#hashDefault
这几天我一直在用&, [], # 和数字的各种组合来处理这个案例。到目前为止没有运气。
这样的规范
[{
"operation": "shift",
"spec": {
"familyMembers": {
"*": {
"name": "familyMembers[&1].firstName",
"living": {
"Yes": {
"#true": "familyMembers[#].living"
},
"*": {
"#false": "familyMembers[#].living"
}
}
}
}
}
}]
生产
{
"familyMembers" : [
{
"firstName" : "Richard",
"living" : [
"true",
"false"
]
},
{
"firstName" : "Napoleon"
}
]
}
这不是所需要的。
欢迎任何提示或帮助。
【问题讨论】: