Convierta la clase de entidad jakson a XML

@Data
@JacksonXmlRootElement(localName = "service")
public class XmlService {
    @JacksonXmlProperty(localName = "SYS_HEAD")
    private SysHeader sysHeader;

    @JacksonXmlProperty(localName = "LOCAL_HEAD")
    private LocalHeader localHeader;

    @JacksonXmlProperty(localName = "APP_HEAD")
    private AppHeader appHeader;

    @JacksonXmlProperty(localName = "BODY")
    private RequestBody requestBody;

}
<?xml version='1.0' encoding='UTF-8'?>
<service> <SYS_HEAD> <TranTime>2023-06-07 14:53:35</TranTime> </SYS_HEAD> <LOCAL_HEAD/> <APP_HEAD/> <BODY> <BusStrip>04</BusStrip> </BODY> </service>

Lo anterior es la clase de entidad convertida en XML, la relación correspondiente

El código de la clave de conversión es:

// Solicitar mayúsculas de la primera letra

xmlMapper.setPropertyNamingStrategy(UPPER_CAMEL_CASE);

//Encabezado de solicitud <?xml version='1.0' encoding='UTF-8'?>

xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, verdadero)

// solicitud de salida formateada, escritorConDefaultPrettyPrinter()

xmlMapper.writerWithDefaultPrettyPrinter().writeValueAsString(prueba);

 private static String printXml(XmlService test) {
        XmlMapper xmlMapper = new XmlMapper();
        xmlMapper.setPropertyNamingStrategy(UPPER_CAMEL_CASE);
        xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
        // 格式化输出
        String xmlStr = null;
        try {
            xmlStr = xmlMapper.writerWithDefaultPrettyPrinter().writeValueAsString(test);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        log.info("定制xml格式化输出:\n{}", xmlStr);
        return xmlStr;
    }

 Esto es para analizar el XML para obtener los datos correspondientes dentro

    xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<service>\n" +
                "\t<SYS_HEAD>\n" +
                "\t\t<ServiceCode></ServiceCode>\n" +
                "\t\t<ServiceScene></ServiceScene>\n" +
                "\t\t<ConsumerId></ConsumerId>\n" +
                "\t\t<ConsumerSeqNo></ConsumerSeqNo>\n" +
                "\t\t<TranDate>20141029</TranDate>\n" +
                "\t\t<TranTime>143238</TranTime>\n" +
                "\t\t<ServSeqNo></ServSeqNo>\n" +
                "\t\t<ReturnStatus>F</ReturnStatus>\n" +
                "\t\t<array>\n" +
                "\t\t\t<Ret>\n" +
                "\t\t\t\t<ReturnCode>10242100008042</ReturnCode>\n" +
                "\t\t\t\t<ReturnMsg>协议读取数据失败</ReturnMsg>\n" +
                "\t\t\t</Ret>\n" +
                "\t\t</array>\n" +
                "\t</SYS_HEAD>\n" +
                "</service>\n";
        parseReturnXml(xml);
    }

    private static void parseReturnXml(String input) throws JsonProcessingException {
        XmlMapper mapper = new XmlMapper();
        JSONObject book = mapper.readValue(input, JSONObject.class);
        String ReturnCode = jsonLoop(book, "ReturnCode");
        String ReturnMsg = jsonLoop(book, "ReturnMsg");
        System.out.println(book);
    }

    public static String jsonLoop(JSONObject object, String code) {
        Set<String> strings = object.keySet();
        for (String string : strings) {
            if (code.equals(string)) {
                return object.getString(code);
            } else {
                try {
                    JSONObject o = object.getJSONObject(string);
                    return jsonLoop((JSONObject) o, code);
                } catch (Exception e) {

                }
            }
        }
        return null;
    }

 referencia

https://blog.csdn.net/qq_33721382/article/details/108228928

Supongo que te gusta

Origin blog.csdn.net/haoweng4800/article/details/131099636
Recomendado
Clasificación