/ / उसी POJO को JSON और XML में कनवर्ट करें लेकिन JSON के लिए कुछ गुणों को अनदेखा करें - xml, json, jaxb, जर्सी, jackson

जेएसओएन और एक्सएमएल में एक ही पीओजेओ को कनवर्ट करें लेकिन JSON - xml, json, jaxb, जर्सी, जैक्सन के लिए कुछ गुणों को अनदेखा करें

मैं POJO को json या XML में स्वीकार प्रकार के अनुसार परिवर्तित करने के लिए JAXB एनोटेशन का उपयोग कर रहा हूं। आवश्यक आउटपुट संरचना:

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() {
}
}

-----------------------------------------------------------------------------

JSON बनाते समय ArrayOfStockAvailabiltiy और StockAvucation की अनदेखी कैसे करें। किसी भी JAXB, जर्सी, जैक्सन संबंधी सुझावों का स्वागत किया जाता है।

Thanks in advance

उत्तर:

उत्तर № 1 के लिए 1

अगर मैं सही तरीके से समझूं, तो आप JSON आउटपुट में POJO से मानों को शामिल करना चाहते हैं, आप बस "" चाहते हैं कि रूट एलिमेंट के नाम JSON में दिखाई दें?

किसी भी JAXB, जर्सी, जैक्सन संबंधी सुझावों का स्वागत किया जाता है।

आपने "जर्सी के किस संस्करण को साझा किया है" का उपयोग कर रहे हैं। अगर:

1) आप जर्सी 2 का उपयोग कर रहे हैं 2) आप अपने JAXB कार्यान्वयन के रूप में MOXy पर स्विच करेंगे 3) आप "अपने JSON को MOXy बनाने के लिए तैयार हैं

फिर MOXyJsonProvider और निम्न कॉन्फिगर गुण देखें:

org.eclipse.persistence.jaxb.MarshallerPropertes.JSON_INCLUDE_ROOT org.eclipse.persistence.jaxb.MarshallerProperties.JSON_WRAPPER_AS_ARRAY_NAME