我有一个棘手的问题要问,据我所知,我还没有看到任何人遇到同样的问题,至少不是一次全部!
我有以下测试 JSON 来转换:
输入
[
{
"test_id": 1212101011,
"someDate": "2020-03-06",
"keyToCheck": "true",
"someData": "123"
},
{
"test_id": 8787909099,
"someDate": "2020-03-09",
"keyToCheck": "false",
"someData": "456"
}
]
我正在尝试获得以下输出。
期望的
[{
"test_id": 1212101011,
"someDate": "2020-03-06",
"keyToCheck": "true",
"someData": "123",
"objToAdd": {
"id": "1",
"label": "dummy1"
}
},{
"test_id": 8787909099,
"someDate": "2020-03-09",
"keyToCheck": "false",
"someData": "456",
"objToAdd": {
"id": "2",
"label": "dummy2"
}]
我已经设法传播所有值并在需要时更改字段的名称,但是添加条件只会破坏一切。此外,根据我目前的规范,在转换后我没有得到一个数组,而我已经可以使用我以前的规范获得。
我到目前为止的规格是:
规格使用
[
{
"operation": "shift",
"spec": {
"*": {
"keyToCheck": {
"true": {
"#1": "objToAdd.id",
"#dummy1": "objToAdd.label"
},
"false": {
"#2": "objToAdd.id",
"#dummy2": "objToAdd.label"
}
}
}
}
}
]
但如前所述,它只给了我这个:
迄今为止的结果
{
"objToAdd" : {
"id" : [ "1", "2" ],
"label" : [ "dummy1", "dummy2" ]
}
}
这似乎是一个缩进的问题。在条件中的值之前添加 [&1] 没有帮助,当我使用“*”传播值时:“[&1].&”,我丢失了 if-else 条件生成的项目。
有没有办法做到这一点?任何帮助,将不胜感激!提前致谢。