Я работал над написанием шаблонов скорости для aws api-gateway, чтобы преобразовать ответ json от моего api, чтобы дать последовательный ответ пользователю.
Я пытался преобразовать это json:
{
"amountCharges": [
"charge1", "charge2", "charge3"
]
}
в ожидаемое значение:
{
"charges": [
"charge1", "charge2", "charge3"
]
}
Я смог создать массив для объектов, используя этот шаблон:
#set( $inputRoot = $input.path('$') )
"charges": [
#foreach( $charge in $inputRoot.charges )
{
"type": "$charge.chargeType",
"name": "$charge.chargeName",
"amount": {
"value": $charge.chargeAmount.amountValue,
"currency": "$charge.chargeAmount.amountCurrency"
},
#if( $charge.chargeTax )
"tax": {
"name": "$charge.chargeTax.taxName",
"amount": {
"value": $charge.chargeTax.taxAmount.amountValue,
"currency": "$charge.chargeTax.taxAmount.amountCurrency"
}
}
#end
}
#if( $foreach.hasnext ) , #end
#end
]
пока этот шаблон смог преобразовать мой массив объектов json в нужный ответ. Пример, упомянутый ниже:
{
"charges": [
{
"chargeType": "someType1",
"chargeName": "someName1",
"chargeAmount": {
"amountValue": 5,
"amountCurrency": "someCurrency1"
},
"chargeTax": {
"taxName": "someTax1",
"taxAmount": {
"amountValue": 5,
"amountCurrency": "someCurrency1"
}
}
},
{
"chargeType": "someType2",
"chargeName": "someName2",
"chargeAmount": {
"amountValue": 10,
"amountCurrency": "someCurrency2"
}
}
]
}
шаблон преобразовал этот json в ожидаемый результат:
{
"charges": [
{
"type": "someType1",
"name": "someName1",
"amount": {
"value": 5,
"currency": "someCurrency1"
},
"tax": {
"name": "someTax1",
"amount": {
"value": 5,
"currency": "someCurrency1"
}
}
},
{
"type": "someType2",
"name": "someName2",
"amount": {
"value": 10,
"currency": "someCurrency2"
}
}
]
}
в основном, я хочу преобразовать массив строк, а не пару ключ-значение , Любые выводы будут полезны. заранее спасибо.