我在Jolt库中遇到问题。我尝试了不同的方法,但无法获得所需的输出。最主要的是,我想从一个数组中获取值并复制它们,但还要更改一些键名。
"amout" -> "value"
"desc" -> "description"
"issued" -> "issueDate"
输入:
{
"payments": [
{
"value": "128.90",
"title": "Opłata za kurs poprawkowy",
"desc": "Opłata za kurs poprawkowy z przedmiotu Architektura Komputerów. Prowadzący Janusz Kowalski.",
"instalment": "1",
"paymentDate": "2020-01-20",
"issued": "2020-01-20",
"status": "1"
},
{
"value": "128.90",
"title": "Opłata za kurs poprawkowy",
"desc": "Opłata za kurs poprawkowy z przedmiotu Architektura Komputerów. Prowadzący Janusz Kowalski.",
"instalment": "2",
"paymentDate": "2020-02-20",
"issued": "2020-02-20",
"status": "2"
}
]
}
输出
{
"payments": [
{
"amount": "128.90",
"title": "Opłata za kurs poprawkowy",
"description": "Opłata za kurs poprawkowy z przedmiotu Architektura Komputerów. Prowadzący Janusz Kowalski.",
"instalment": "1",
"paymentDate": "2020-01-20",
"issueDate": "2020-01-20",
"status": "1"
},
{
"amount": "128.90",
"title": "Opłata za kurs poprawkowy",
"description": "Opłata za kurs poprawkowy z przedmiotu Architektura Komputerów. Prowadzący Janusz Kowalski.",
"instalment": "2",
"paymentDate": "2020-02-20",
"issueDate": "2020-02-20",
"status": "2"
}
]
}
答案 0 :(得分:1)
这是经典的移位操作。您将需要遍历付款数组的itens,并将每个属性“移”回同一索引(&1)上的对象:
[
{
"operation": "shift",
"spec": {
"payments": {
"*": {
"value": "payments.[&1].amount",
"desc": "payments.[&1].description",
"issued": "payments.[&1].issueDate",
"*": "payments.[&1].&"
}
}
}
}
]
答案 1 :(得分:0)
[
{
"operation": "shift",
"spec": {
"payments": {
// for each item in array
"*": {
// change keys
"value": "payments[&1].amount",
"desc": "payments[&1].description",
"issued": "payments[&1].issueDate",
// copy everything else
"*": {
"@": "payments[&2].&"
}
}
}
}
}
]