I am using JAXB annotation to convert POJO to json or XML as per accept type. Required Output structure:
XML :
<ArrayOfStockAvailability>
<StockAvailability>
<ProductId>ProductId1</ProductId>
<LocationId>LocationId1</LocationId>
<UnitOfMeasure>Each</UnitOfMeasure>
<Quantity>1</Quantity>
<StockKeepingUnit>DEFAULT</StockKeepingUnit>
<AvailabilityStatus>OUT_OF_STOCK</AvailabilityStatus>
</StockAvailability>
<StockAvailability>
<ProductId>ProductId1</ProductId>
<LocationId>LocationId2</LocationId>
<UnitOfMeasure>Each</UnitOfMeasure>
<Quantity>0</Quantity>
<StockKeepingUnit>DEFAULT</StockKeepingUnit>
<AvailabilityStatus>IN_STOCK</AvailabilityStatus>
</StockAvailability>
</ArrayOfStockAvailability>
JSON :
[
{
"ProductId":"103-8173",
"LocationId":"GMO",
"UnitOfMeasure":"Each",
"Quantity":1.0,
"StockKeepingUnit":"DEFAULT",
"AvailabilityStatus":"IN_STOCK"
},
{
"ProductId":"322-5810",
"LocationId":"GMO",
"UnitOfMeasure":"Each",
"Quantity":1.0,
"StockKeepingUnit":"DEFAULT",
"AvailabilityStatus":"IN_STOCK"
},
]
POJO :
@XmlRootElement(name = "ArrayOfStockAvailabiltiy")
public class ArrayOfAvailabilityStatus extends BasePojo {
private List<AvailabilityStatus> stockAvailability;
@XmlElement(name = "StockAvailability")
public List<AvailabilityStatus> getStockAvailability() {
return stockAvailability;
}
}
@XmlRootElement
public class AvailabilityStatus {
private String productId;
private String locationId;
private String unitofmeasure;
private boolean quantity;
private String stockKeepingUnit;
private boolean availabilityStatus;
@XmlElement(name = "ProductId")
public String getProductId() {
}
}
-----------------------------------------------------------------------------
How to ignore ArrayOfStockAvailabiltiy and StockAvailability while creating JSON. Any JAXB , Jersey, Jackson related Suggestions are welcomed.
Thanks in advance