Преобразуйте массив JSON с помощью Jolt в новый объект JSON и храните объекты отдельно.JAVA

Программисты JAVA общаются здесь
Гость
Преобразуйте массив JSON с помощью Jolt в новый объект JSON и храните объекты отдельно.

Сообщение Гость »

У меня есть массив объектов JSON, который мне нужно преобразовать в новый массив объектов JSON, соответствующий моей схеме. Я новичок в Jolt, и результат не тот, который мне нужен.
Я попробовал несколько способов, но не смог добиться желаемого результата.
< strong>Это мой входной JSON:

Код: Выделить всё

{
"totalApplication":{
"applicationName":"MSOffice",
"products":[
{
"productName":"Yearly",
"userList":[
{
"userId":"3544353",
"email":"joeh@yahoo.com",
"userName":"Joe Hashashi",
"lastActive":"1705088660"
},
{
"userId":"3544354",
"email":"jacob@yahoo.com",
"userName":"Jacob Martin",
"lastActive":"1705088661"
}
]
},
{
"productName":"Monthly",
"userList":[
{
"userId":"4545455",
"email":"amandak@yahoo.com",
"userName":"Amanda Kore",
"lastActive":"1705088662"
},
{
"userId":"4545456",
"email":"leo@yahoo.com",
"userName":"Leo Biz",
"lastActive":"1705088663"
}
]
}
]
}
}
Это спецификация Jolt, которую я пробовал:

Код: Выделить всё

[
{
"operation": "shift",
"spec": {
"totalApplication": {
"products": {
"*": {
"userList": {
"*": {
"userName": "[&3].name",
"email": "[&3].email",
"userId": "[&3].userId",
"@(2,productName)": "[&3].additionalAttribute.planName",
"lastActive": "[&3].additionalAttribute.lastActive",
"@(4,applicationName)": "[&3].additionalAttribute.applicationName"
}
}
}
}
}
}
}
]
С учетом вышеупомянутых характеристик я получаю результат ниже:

Код: Выделить всё

[ {
"additionalAttribute" : {
"planName" : [ "Yearly", "Yearly" ],
"applicationName" : [ "MSOffice", "MSOffice" ],
"lastActive" : [ "1705088660", "1705088661" ]
},
"name" : [ "Joe Hashashi", "Jacob Martin" ],
"email" : [ "joeh@yahoo.com", "jacob@yahoo.com" ],
"userId" : [ "3544353", "3544354" ]
}, {
"additionalAttribute" : {
"planName" : [ "Monthly", "Monthly" ],
"applicationName" : [ "MSOffice", "MSOffice" ],
"lastActive" : [ "1705088662", "1705088663" ]
},
"name" : [ "Amanda Kore", "Leo Biz" ],
"email" : [ "amandak@yahoo.com", "leo@yahoo.com" ],
"userId" : [ "4545455", "4545456"  ]
} ]
Мне нужен этот желаемый результат:

Код: Выделить всё

[
{
"name":"Joe Hashashi",
"email":"joeh@yahoo.com",
"userId":"3544353",
"additionalAttribute":{
"lastActive":"1705088660",
"productName":"Yearly",
"applicationName":"MSOffice"
}
},
{
"name":"Jacob Martin",
"email":"jacob@yahoo.com",
"userId":"3544354",
"additionalAttribute":{
"lastActive":"1705088661",
"productName":"Yearly",
"applicationName":"MSOffice"
}
},
{
"name":"Amanda Kore",
"email":"amandak@yahoo.com",
"userId":"4545455",
"additionalAttribute":{
"lastActive":"1705088662",
"productName":"Monthly",
"applicationName":"MSOffice"
}
},
{
"name":"Leo Biz",
"email":"leo@yahoo.com",
"userId":"4545456",
"additionalAttribute":{
"lastActive":"1705088663",
"productName":"Monthly",
"applicationName":"MSOffice"
}
}
]
Это не дает желаемого результата. Может ли кто-нибудь помочь мне с этим?


Подробнее здесь: https://stackoverflow.com/questions/782 ... s-separate

Вернуться в «JAVA»