Есть ли способ проанализировать json и сохранить данные в таблицу. Я получаю ответ от нескольких API и хочу сгладить структуру json и сохранить ее в базе данных, чтобы я мог создавать отчеты по ней. Я использую библиотеку Джексона, чтобы сгладить json.
Map flattenJson = JsonFlattener.flattenAsMap(finalout);
сплющенный json структура:
{</p>
<pre><code> "planWorkspaceList[0].id":"5e6f40fb7977be7b59bdd6f6"
"planWorkspaceList[0].planId":"5e6f40b465dc7170a4a91b85"
"planWorkspaceList[0].version":1
"planWorkspaceList[0].planWorkspaceProduct.planProductId":"5e6f40fb7977be7b59bdd6f5"
"planWorkspaceList[0].planWorkspaceProduct.lineClassId":"fT6lBmYjRgmqoQo48P_H-g"
"planWorkspaceList[0].planWorkspaceProduct.commercialTypeId":"SPJb3Pb0QvK-knpXwxpy1A"
"planWorkspaceList[0].planWorkspaceProduct.spotLengthId":"1ecrktlESZGlnMoP5su1Fw"
"planWorkspaceList[0].planWorkspaceProduct.lineNo":1
"planWorkspaceList[0].planWorkspaceProduct.lineId":"02aa009c-694b-4d72-a7ae-761e8e2b5a74"
"planWorkspaceList[0].planWorkspaceProduct.channelId":"G7k5_-HWRIuF0-afe7q-rQ"
"planWorkspaceList[0].planWorkspaceProduct.productId":"5e54fc4a4d82f119a2d7785f"
"planWorkspaceList[0].planWorkspaceProduct.ratecardId":null
"planWorkspaceList[0].rates.quarterName":"1Q20"
"planWorkspaceList[0].rates.planWeekRates[0].week":"20200106"
"planWorkspaceList[0].rates.planWeekRates[0].weekValue.unitRates.units":19
"planWorkspaceList[0].rates.planWeekRates[0].weekValue.unitRates.rate":0.0
"planWorkspaceList[0].rates.planWeekRates[0].weekValue.unitRates.ratePercent":0.0
"planWorkspaceList[0].rates.planWeekRates[1].week":"20200113"
"planWorkspaceList[0].rates.planWeekRates[1].weekValue.unitRates.units":13
"planWorkspaceList[0].rates.planWeekRates[1].weekValue.unitRates.rate":0.0
"planWorkspaceList[0].rates.planWeekRates[1].weekValue.unitRates.ratePercent":0.0
"planWorkspaceList[0].goals":null
"planWorkspaceList[1].id":"5e453bafa25d1a6262d66afe"
"planWorkspaceList[1].planId":"5e453b98a25d1a6262d66af7"
"planWorkspaceList[1].planWorkspaceProduct.planProductId":"5e453bafa25d1a6262d66afa"
"planWorkspaceList[1].planWorkspaceProduct.lineClassId":"hiSUhfVbT5mqbxbmE8TN6w"
"planWorkspaceList[1].planWorkspaceProduct.commercialTypeId":"Z3DViBRsR1KFSW-V1r_Crw"
"planWorkspaceList[1].planWorkspaceProduct.spotLengthId":"6Qydhbe3S7atGKlcAZSUtQ"
"planWorkspaceList[1].planWorkspaceProduct.lineNo":1
"planWorkspaceList[1].rates.quarterName":"2020Q2"
"planWorkspaceList[1].rates.planWeekRates[0].week":"20200106"
"planWorkspaceList[1].rates.planWeekRates[0].weekValue.unitRates.units":11
"planWorkspaceList[1].rates.planWeekRates[0].weekValue.unitRates.rate":0.0
"planWorkspaceList[1].rates.planWeekRates[0].weekValue.unitRates.ratePercent":0.0
"planWorkspaceList[1].rates.planWeekRates[1].week":"20200113"
"planWorkspaceList[1].rates.planWeekRates[1].weekValue.unitRates.units":0
"planWorkspaceList[1].rates.planWeekRates[1].weekValue.unitRates.rate":0.0
"planWorkspaceList[1].rates.planWeekRates[1].weekValue.unitRates.ratePercent":0.0
"planWorkspaceList[1].rates.planWeekRates[2].week":"20200608"
"planWorkspaceList[1].rates.planWeekRates[2].weekValue.unitRates.units":5
"planWorkspaceList[1].rates.planWeekRates[2].weekValue.unitRates.rate":0.0
"planWorkspaceList[1].rates.planWeekRates[2].weekValue.unitRates.ratePercent":0.0
"planWorkspaceList[1].goals":null
}
</code>
Я должен быть в состоянии l oop через сглаженный вывод, и я могу передать ключи из некоторой таблицы метаданных, так что мне не нужно писать код, определяющий c - json ответ. json вход `
{
"planWorkspaceList": [{
"id": "5e6f40fb7977be7b59bdd6f6",
"planId": "5e6f40b465dc7170a4a91b85",
"version": 1,
"planWorkspaceProduct": {
"planProductId": "5e6f40fb7977be7b59bdd6f5",
"lineClassId": "fT6lBmYjRgmqoQo48P_H-g",
"commercialTypeId": "SPJb3Pb0QvK-knpXwxpy1A",
"spotLengthId": "1ecrktlESZGlnMoP5su1Fw",
"lineNo": 1,
"lineId": "02aa009c-694b-4d72-a7ae-761e8e2b5a74",
"channelId": "G7k5_-HWRIuF0-afe7q-rQ",
"productId": "5e54fc4a4d82f119a2d7785f",
"ratecardId": null
},
"rates": {
"quarterName": "1Q20",
"planWeekRates": [{
"week": "20200106",
"weekValue": {
"unitRates": {
"units": 19,
"rate": 0.0,
"ratePercent": 0.0
}
}</p>
<pre><code> },
{
"week": "20200113",
"weekValue": {
"unitRates": {
"units": 13,
"rate": 0.0,
"ratePercent": 0.0
}
}
}
]
},
"goals": null
},
{
"id": "5e453bafa25d1a6262d66afe",
"planId": "5e453b98a25d1a6262d66af7",
"planWorkspaceProduct": {
"planProductId": "5e453bafa25d1a6262d66afa",
"lineClassId": "hiSUhfVbT5mqbxbmE8TN6w",
"commercialTypeId": "Z3DViBRsR1KFSW-V1r_Crw",
"spotLengthId": "6Qydhbe3S7atGKlcAZSUtQ",
"lineNo": 1
},
"rates":
{
"quarterName": "2020Q2",
"planWeekRates": [{
"week": "20200106",
"weekValue": {
"unitRates": {
"units": 11,
"rate": 0.0,
"ratePercent": 0.0
}
}
}, {
"week": "20200113",
"weekValue": {
"unitRates": {
"units": 0,
"rate": 0.0,
"ratePercent": 0.0
}
}
}, {
"week": "20200608",
"weekValue": {
"unitRates": {
"units": 5,
"rate": 0.0,
"ratePercent": 0.0
}
}
}
]
},
"goals": null
}
]
}
output format:
+ -------------------------- + -------------------------- + --------- + ------------ -------------- + ------------------------ + ---------- -------------- + ------------------------ + -------- + - ------------------------------------- + ------------ ------------ + -------------------------- + ---------- - + ------------- + ---------- + ------- + ------ + ------- ------ + ------- + - + | id | planId | версия | planProductId | lineClassId | CommercialTypeId | spotLengthId | lineNo | lineId | идентификатор канала | productId | ratecardId | quarName | неделя | единицы | Оценить | RatePercent | цели | | + -------------------------- + ---------------------- ---- + --------- + -------------------------- + -------- ---------------- + ------------------------ + -------- ---------------- + -------- + ------------------------ -------------- + ------------------------ + ---------- ---------------- + ------------ + ------------- + ------ ---- + ------- + ------ + ------------- + ------- + - + | 5e6f40fb7977be7b59bdd6f6 | 5e6f40b465dc7170a4a91b85 | 1 | 5e6f40fb7977be7b59bdd6f5 | fT6lBmYjRgmqoQo48P_H-g | SPJb3Pb0QvK-knpXwxpy1A | 1ecrktlESZGlnMoP5su1Fw | 1 | 02aa009 c -694b-4d72-a7ae-761e8e2b5a74 | G7k5_-HWRIuF0-afe7q-rQ | 5e54fc4a4d82f119a2d7785f | ноль | 1Q20 | 20200106 | 19 | 0 | 0 | ноль | | + -------------------------- + ---------------------- ---- + --------- + -------------------------- + -------- ---------------- + ------------------------ + -------- ---------------- + -------- + ------------------------ -------------- + ------------------------ + ---------- ---------------- + ------------ + ------------- + ------ ---- + ------- + ------ + ------------- + ------- + - + | 5e6f40fb7977be7b59bdd6f6 | 5e6f40b465dc7170a4a91b85 | 1 | 5e6f40fb7977be7b59bdd6f5 | fT6lBmYjRgmqoQo48P_H-g | SPJb3Pb0QvK-knpXwxpy1A | 1ecrktlESZGlnMoP5su1Fw | 1 | 02aa009 c -694b-4d72-a7ae-761e8e2b5a75 | G7k5_-HWRIuF0-afe7q-rQ | 5e54fc4a4d82f119a2d7785f | ноль | 1Q20 | 20200113 | 13 | 0 | 0 | ноль | | + -------------------------- + ---------------------- ---- + --------- + -------------------------- + -------- ---------------- + ------------------------ + -------- ---------------- + -------- + ------------------------ -------------- + ------------------------ + ---------- ---------------- + ------------ + ------------- + ------ ---- + ------- + ------ + ------------- + ------- + - + | 5e453bafa25d1a6262d66afe | 5e453b98a25d1a6262d66af7 | ноль | 5e453bafa25d1a6262d66afa | hiSUhfVbT5mqbxbmE8TN6w | Z3DViBRsR1KFSW-V1r_Crw | 6Qydhbe3S7atGKlcAZSUtQ | 1 | ноль | ноль | ноль | ноль | 2020Q2 | 20200106 | 11 | 0 | 0 | ноль | | + -------------------------- + ---------------------- ---- + --------- + -------------------------- + -------- ---------------- + ------------------------ + -------- ---------------- + -------- + ------------------------ -------------- + ------------------------ + ---------- ---------------- + ------------ + ------------- + ------ ---- + ------- + ------ + ------------- + ------- + - + | 5e453bafa25d1a6262d66afe | 5e453b98a25d1a6262d66af7 | ноль | 5e453bafa25d1a6262d66afa | hiSUhfVbT5mqbxbmE8TN6w | Z3DViBRsR1KFSW-V1r_Crw | 6Qydhbe3S7atGKlcAZSUtQ | 1 | ноль | ноль | ноль | ноль | 2020Q2 | 20200608 | 5 | | 0 | ноль | | + -------------------------- + ---------------------- ---- + --------- + -------------------------- + -------- ---------------- + ------------------------ + -------- ---------------- + -------- + ------------------------ -------------- + ------------------------ + ---------- ---------------- + ------------ + ------------- + ------ ---- + ------- + - сильный текст ---- + ------------- + ------- + - +
`