Groovy - XML ​​в JSON, не зная каждого ключа - PullRequest
0 голосов
/ 13 июня 2018

У меня есть ответ веб-службы XML (см. Ниже), и я хотел бы преобразовать его в JSON, не зная каждого ключа.

Ответ намного больше, это всего лишь пример, показывающий структуру.

Можно ли это сделать в Groovy?

<allMortProdContainers>
   <WsMortProdContainerv02>
      <allWsMortProdCapCollarBandByEnd xsi:nil="true"/>
      <allWsMortProdCashBackBandByEnd xsi:nil="true"/>
      <allWsMortProdEarlyRepaymentBandByEnd>
         <WsMortProdEarlyRepaymentBandv01>
            <endDate>???</endDate>
            <endMonth>???</endMonth>
            <fixedCharge>???</fixedCharge>
            <monthsInterest>???</monthsInterest>
            <percentage>???</percentage>
         </WsMortProdEarlyRepaymentBandv01>
      </allWsMortProdEarlyRepaymentBandByEnd>
      <myWsMortProdSpec>
         <productBaseRate>???</productBaseRate>
         <productBaseRateDescription>???</productBaseRateDescription>
         <productCode>???</productCode>
         <productDescription>???</productDescription>
         <productDescriptionWebFriendly>???</productDescriptionWebFriendly>
         <productInfoKey>???</productInfoKey>
         <productType>???</productType>
      </myWsMortProdSpec>
   </WsMortProdContainerv02>
</allMortProdContainers>

1 Ответ

0 голосов
/ 13 июня 2018
@Grab(group='org.json', module='json', version='20180130')
import org.json.XML;

def xml = '''<allMortProdContainers xmlns:xsi="...." >
   <WsMortProdContainerv02>
      <allWsMortProdCapCollarBandByEnd xsi:nil="true"/>
      <allWsMortProdCashBackBandByEnd xsi:nil="true"/>
      <allWsMortProdEarlyRepaymentBandByEnd>
         <WsMortProdEarlyRepaymentBandv01>
            <endDate>???</endDate>
            <endMonth>???</endMonth>
            <fixedCharge>???</fixedCharge>
            <monthsInterest>???</monthsInterest>
            <percentage>???</percentage>
         </WsMortProdEarlyRepaymentBandv01>
      </allWsMortProdEarlyRepaymentBandByEnd>
      <myWsMortProdSpec>
         <productBaseRate>???</productBaseRate>
         <productBaseRateDescription>???</productBaseRateDescription>
         <productCode>???</productCode>
         <productDescription>???</productDescription>
         <productDescriptionWebFriendly>???</productDescriptionWebFriendly>
         <productInfoKey>???</productInfoKey>
         <productType>???</productType>
      </myWsMortProdSpec>
   </WsMortProdContainerv02>
</allMortProdContainers>'''

println XML.toJSONObject(xml).toString(2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...