但願有一天你們都能在借鑑中創新
直接說用法和效果:java
工具類代碼json
package dream.sakura.rain.utils; import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler; import org.json.JSONObject; import org.json.XML; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; /\*\* \* @ClassName XmlUtils \* @Description xml工具類 \* @Author lcz \* @Date 2020/01/20 09:51 \*/public class XmlUtils { /\*\* \* 須要使用依賴pom座標 此方法不須要對應實體類便可轉換 \* <dependency> \* <groupId>org.json</groupId> \* <artifactId>json</artifactId> \* <version>20180130</version> \* </dependency> \*/ public static String xmlConvertJson() { String xml = "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>" +"<user>" \+ "<user-id>12280</user-id>" \+ "<user-name>licunzhi</user-name>" \+ "<user-age>13</user-age>" \+ "<user-sex>1</user-sex>" \+ "</user>"; JSONObject jsonObject = XML.toJSONObject(xml); System.out.println(jsonObject.toString()); return jsonObject.toString(); } /\*\* \* 將XML轉爲指定的POJO \* \* @param clazz 轉換類型 \* @param xmlStr 帶解析字符串 \* @return 出參 \*/ public static Object xmlStrToOject(Class<?\> clazz, String xmlStr) { try { xmlStr = xmlStr.replaceAll("\\\\t", ""); JAXBContext context = JAXBContext.newInstance(clazz); Unmarshaller unmarshaller = context.createUnmarshaller(); Reader reader = new StringReader(xmlStr); Object xmlObject = unmarshaller.unmarshal(reader); reader.close(); return xmlObject; } catch (Exception e) { e.printStackTrace(); return null; } } /\*\* \* @param object \* @return \* @throws Exception \*/ public static String objectToXmlStr(Object object) { try { StringWriter writer = new StringWriter(); JAXBContext context = JAXBContext.newInstance(object.getClass()); Marshaller marshal = context.createMarshaller(); // 格式化輸出 marshal.setProperty(Marshaller.JAXB\_FORMATTED\_OUTPUT, true); // 編碼格式,默認爲GBK marshal.setProperty(Marshaller.JAXB\_ENCODING, "GBK"); // 是否省略xml頭信息 marshal.setProperty(Marshaller.JAXB\_FRAGMENT, false); marshal.setProperty("jaxb.encoding", "GBK"); marshal.setProperty("com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler", (CharacterEscapeHandler) (ch, start, length, isAttVal, writer1) \-> writer1.write(ch, start, length)); marshal.marshal(object, writer); return new String(writer.getBuffer()); } catch (Exception e) { e.printStackTrace(); return null; } }}
相關pom依賴座標微信
<dependencies\> <dependency\> <groupId\>com.rabbitmq</groupId\> <artifactId\>amqp-client</artifactId\> <version\>3.6.5</version\> </dependency\> <dependency\> <groupId\>commons-lang</groupId\> <artifactId\>commons-lang</artifactId\> <version\>2.4</version\> </dependency\> </dependencies\>
微信公衆號:碼農的技術分享【更新速度有點慢 多多見諒】工具
源代碼請回復: xmltojson編碼
知乎帳號:曦曦春風code