gpt4 book ai didi

java - 如何使用 jolt 库在列表中转换列表

转载 作者:行者123 更新时间:2023-12-01 16:30:02 24 4
gpt4 key购买 nike

我正在尝试使用 Jolt 库将 JSON 转换为另一个 JSON,但没有获得所需的输出。

这是我的输入文件。


{
"maxResults": 150,
"total": 89,
"issues": [
{
"key": "1",
"fields": {
"fixVersions": [
{
"self": "FIX1-01",
"id": "11"
},
{
"self": "FIX1-02",
"id": "12"
}
]
}
},
{
"key": "2",
"fields": {
"fixVersions": [
{
"self": "FIX2-01",
"id": "21"
}
]
}
},
{
"key": "3",
"fields": {
"fixVersions": []
}
}
]
}

这是我用于转换的规范文件。


[
{
"operation": "shift",
"spec": {
"issues": {
"*": {
"key": "[&1].id",
"fields": {
"fixVersions": {
"*": {
"self": "[&1].fixVersion.name"
}
}
}
}
}
}
}
]

我得到了这个输出

[
{
"id": "1",
"fixVersion": {
"name": [
"FIX1-01",
"FIX2-01"
]
}
},
{
"fixVersion": {
"name": "FIX1-02"
},
"id": "2"
},
{
"id": "3"
}
]

这是不对的。它所做的是获取每个问题的第一个自字段值并将其作为数组填充到输出的第一个修复版本中,并获取第二个自字段值并将其填充到第二个修复版本中。我想要做的是保持输入中的结构,只需像这样更改自身字段名称。

[
{
"id": "1",
"fixVersion": [
{
"name": "FIX1-01"
},
{
"name": "FIX1-02"
}
]
},
{
"fixVersion": [
{
"name": "FIX2-01"
}
],
"id": "2"
},
{
"id": "3"
}
]

我做错了什么?

最佳答案

看看这个规范是否是您正在寻找的:

[
{
"operation": "shift",
"spec": {
"issues": {
"*": {
"key": "[&1].id",
"fields": {
"fixVersions": {
"*": {
"self": "[&4].fixVersion[&1].name"
}
}
}
}
}
}
}
]

根据您的输入使用它的输出将导致:

[
{
"id": "1",
"fixVersion": [
{
"name": "FIX1-01"
},
{
"name": "FIX1-02"
}
]
},
{
"id": "2",
"fixVersion": [
{
"name": "FIX2-01"
}
]
},
{
"id": "3"
}
]

请注意您用于重建修复版本的索引的更改(还需要考虑问题索引)列表,您缺少此:

[&4].fixVersion[&1].name

关于java - 如何使用 jolt 库在列表中转换列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62066738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com