我想使用JOLT规范转换JSON数组。
[
{
"list": [ "item1" ]
}
]
我想要的输出:
[
{
"list": [
{
"listType": "1",
"listValue": "item1"
}
]
}
]
目标是将每个条目转换为包含type属性的JSON对象。这是我迄今为止的jolt规范:
[
{
"operation": "shift",
"spec": {
"*": {
"list": {
"*": {
"#1": "[&3].&2[&1].listType",
"@(0)": "[&3].&2[&1].listValue"
}
}
}
}
}
]
只要列表不为空,这个方法就可以正常工作,但是如果我传递一个空列表"list": []
,那么这个属性在转换后的JSON中将被忽略,在这种情况下,我希望在输出中也将其转换为一个空列表,也就是说,这个属性所需的转换也是"list": []
。
我发现了一些建议,试图用默认规范来实现这一点,但问题是,如果属性在原始JSON中不存在,我不希望添加空列表。在这种情况下,我不希望在输出中看到这个字段。我只希望看到一个空列表,如果一开始输入中就有一个空列表。
这可能吗?我也很乐意使用一个需要空值而不是空列表的解决方案,即"list": null
将转换为"list": []
,如果这会更容易的话。
- 编辑**:下面再举几个例子来说明我正在努力实现的目标:
- 案例1:**
[
{
"list": ["item1"],
"attribute2": "abc"
}
]
应该转变为
[
{
"list": [
{
"listType": "1",
"listValue": "item1"
}
],
"attribute2": "abc"
}
]
- 案例2:**
[
{
"list": [],
"attribute2": "abc"
}
]
应该转变为
[
{
"list": [],
"attribute2": "abc"
}
]
- 案例3**
[
{
"attribute2": "abc"
}
]
应该转变为
[
{
"attribute2": "abc"
}
]
(no案例3中的"list"属性)
2条答案
按热度按时间fcwjkofz1#
可以使用此等级库:
k4emjkb12#
您可以使用以下规范
为了得到
或
为了得到
对于输入
对非空情况没有影响