但愿有一天你们都能在借鉴中创新
直接说用法和效果: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