Hello All,
I am using 'xmljson' to convert a simple XMl to JSON, but looks like its not
working properly, Below what I am doing
<dataFormats>
<xmljson id="jsonRequestXml" />
</dataFormats>
<route id="test" autoStartup="true">
<from uri="restlet:/test?restletMethods=GET"/>
<to uri="bean:testBean?method=returnXml"/>
<log message="XML: ${body}"/>
<marshal ref="jsonRequestXml"/>
<log message="JSON: ${body}"/>
</route>
Xml Input:
<Response>
<Version>2.0</Version>
<ErrorCode>0</ErrorCode>
<ErrorMsg>OK</ErrorMsg>
<Value>
<InstallKey>
<CustomerProductId>5957152</CustomerProductId>
<KeyPoolName>Standard_EMEA</KeyPoolName>
<ProductId>37293</ProductId>
<Value>ABCD-EFGH-CC-89</Value>
</InstallKey>
</Value>
</Response>
Json Outpout:
{
"Version": "2.0",
"ErrorCode": "0",
"ErrorMsg": "OK",
"Value": {
"InstallKey": {
"CustomerProductId": "5957152",
"KeyPoolName": "Standard_EMEA",
"ProductId": "37293",
"Value": "ABCD-EFGH-CC-89"
}
}
}
So there is no problem, and i am happy with above.
But problem happening with when there is an array Please look below
Input XML:
<Response>
<Version>2.0</Version>
<ErrorCode>0</ErrorCode>
<ErrorMsg>OK</ErrorMsg>
<Value>
<InstallKey>
<CustomerProductId>5957152</CustomerProductId>
<KeyPoolName>Standard_EMEA</KeyPoolName>
<ProductId>37293</ProductId>
<Value>ABCD-EFGH-CC-87</Value>
</InstallKey>
<InstallKey>
<CustomerProductId>5957152</CustomerProductId>
<KeyPoolName>Standard_EMEA</KeyPoolName>
<ProductId>37293</ProductId>
<Value>ABCD-EFGH-CC-89</Value>
</InstallKey>
</Value>
</Response>
Output Json:
{
"Version": "2.0",
"ErrorCode": "0",
"ErrorMsg": "OK",
"Value": [{
"CustomerProductId": "5957152",
"KeyPoolName": "Standard_EMEA",
"ProductId": "37293",
"Value": "ABCD-EFGH-CC-87"
}, {
"CustomerProductId": "5957152",
"KeyPoolName": "Standard_EMEA",
"ProductId": "37293",
"Value": "ABCD-EFGH-CC-89"
}]
}
As you can see 'InstallKey' element is missing but its value added as an
array, :(
Should not the output be like below
{
"Version": "2.0",
"ErrorCode": "0",
"ErrorMsg": "OK",
"Value": {"InstallKey": [{
"CustomerProductId": "5957152",
"KeyPoolName": "Standard_EMEA",
"ProductId": "37293",
"Value": "ABCD-EFGH-CC-87"
}, {
"CustomerProductId": "5957152",
"KeyPoolName": "Standard_EMEA",
"ProductId": "37293",
"Value": "ABCD-EFGH-CC-89"
}]}
}
I am kind tried everything but no hope and cant figure out whether i am
doing something wrong or its a bug with 'xmljson'
--
View this message in context:
http://camel.465427.n5.nabble.com/Camel-xmlJson-not-working-properly-tp5795194.html
Sent from the Camel - Users mailing list archive at Nabble.com.