В настоящее время я использую вход XML и использую Джексон для преобразования его в выход json. Представлены две проблемы. Одна часть xml содержит атрибут, который переводится неправильно. Другая часть xml должна быть массивом в формате json. Что я могу добавить в свой существующий код, чтобы справиться с этим?
Что у меня:
InputStream inputStream;
XmlMapper mapper = new XmlMapper();
Map entries;
try {
entries = mapper.readValue(new File("file"),
LinkedHashMap.class);
System.out.println("Entries: " + entries);
ObjectMapper jsonMapper = new ObjectMapper();
jsonMapper.enable(SerializationFeature.INDENT_OUTPUT);
json = jsonMapper.writer().writeValueAsString(entries);
System.out.println(json);
//return json;
return json;
XML:
<SctiesQtyOrInstdAmt>
<SctiesQty>
<CondlQty>
<FaceAmt>499999999.50000</FaceAmt>
</CondlQty>
<InstdQty>
<Qty>
<FaceAmt>20000</FaceAmt>
</Qty>
</InstdQty>
</SctiesQty>
</SctiesQtyOrInstdAmt>
<PricDtls>
<GncCshPricRcvdPerPdct>
<AmtPric>
<AmtPricTp>ACTU</AmtPricTp>
<PricVal Ccy="AAA">4.5000000000000</PricVal>
</AmtPric>
</GncCshPricRcvdPerPdct>
</PricDtls>
<ShrhldrNb>ShrhldrNb0</ShrhldrNb>
<AddtlInf>
<InstrAddtlInf>12345</InstrAddtlInf>
<InstrAddtlInf>12346</InstrAddtlInf>
</AddtlInf>
</CorpActnInstr>
<SplmtryData>
<Envlp>
<Document>
<DTCCCAINSD1>
<ReorgInstrDtls>
<PlcAndNm>PlcAndNm0</PlcAndNm>
<TxSeq>
<TxSeqNb>0</TxSeqNb>
<InstrQty>
<Unit>0.0000000000000</Unit>
</InstrQty>
<OvrsbcptQty>
<Unit>0.0000000000000</Unit>
</OvrsbcptQty>
<CstmrRefId>CstmrRefId0</CstmrRefId>
</TxSeq>
<TtlOvrsbcptQty>
<Unit>0.0000000000000</Unit>
</TtlOvrsbcptQty>
JSON Вывод:
"SctiesQtyOrInstdAmt" : {
"SctiesQty" : {
"CondlQty" : {
"FaceAmt" : "499999999.50000"
},
"InstdQty" : {
"Qty" : {
"FaceAmt" : "20000"
}
}
}
},
"PricDtls" : {
"GncCshPricRcvdPerPdct" : {
"AmtPric" : {
"AmtPricTp" : "ACTU",
**"PricVal" : {
"Ccy" : "AAA",
"" : "4.5000000000000"**
}
}
}
},
"ShrhldrNb" : "ShrhldrNb0",
"AddtlInf" : {
"InstrAddtlInf" : "12346"
}
},
"SplmtryData" : {
"Envlp" : {
"Document" : {
"DTCCCAINSD1" : {
"ReorgInstrDtls" : {
"PlcAndNm" : "PlcAndNm0",
**"TxSeq" : {
"TxSeqNb" : "0",
"InstrQty" : {
"Unit" : "0.0000000000000"
},
"OvrsbcptQty" : {
"Unit" : "0.0000000000000"
},
"CstmrRefId" : "CstmrRefId0"
},
"TtlOvrsbcptQty" : {
"Unit" : "0.0000000000000"
}**
Желаемый JSON Выход:
"SctiesQtyOrInstdAmt" : {
"SctiesQty" : {
"CondlQty" : {
"FaceAmt" : "499999999.50000"
},
"InstdQty" : {
"Qty" : {
"FaceAmt" : "20000"
}
}
}
},
"PricDtls" : {
"GncCshPricRcvdPerPdct" : {
"AmtPric" : {
"AmtPricTp" : "ACTU",
**"PricVal" : {
"Ccy" : "AAA",
"value" : "4.5000000000000"**
}
}
}
},
"ShrhldrNb" : "ShrhldrNb0",
"AddtlInf" : {
"InstrAddtlInf" : "12346"
}
},
"SplmtryData" : {
"Envlp" : {
"Document" : {
"DTCCCAINSD1" : {
"ReorgInstrDtls" : {
"PlcAndNm" : "PlcAndNm0",
**"TxSeq" :[ {
"TxSeqNb" : "0",
"InstrQty" : {
"Unit" : "0.0000000000000"
},
"OvrsbcptQty" : {
"Unit" : "0.0000000000000"
},
"CstmrRefId" : "CstmrRefId0"
}
],
"TtlOvrsbcptQty" : {
"Unit" : "0.0000000000000"
}**