jackson使用xml轉json
阿新 • • 發佈:2018-12-31
package com.testtt.main.uu;
import java.io.StringWriter;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.testtt.main.model.User;
public class XmlUtil {
private static XmlMapper xmlMapper = new XmlMapper();
private static ObjectMapper objectMapper = new ObjectMapper();
/**
* xml字串轉成JSON格式字串
*
* @param xmlStr
* @return
*/
public static String convertXmlToJson(String xml) {
StringWriter w = new StringWriter();
try {
JsonParser jp = xmlMapper.getFactory().createParser(xml);
JsonGenerator jg = objectMapper.getFactory().createGenerator(w);
while (jp.nextToken() != null) {
jg.copyCurrentEvent(jp);
}
jp.close();
jg.close();
} catch (Exception e) {
e.printStackTrace();
}
return w.toString();
}
/**
* JSON轉換成Object
*
* @param jsonStr
* JSON格式字串
* @param valueType
* 物件
* @return
*/
public static <T> T readValue(String jsonStr, Class<T> clazz) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, clazz);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<user>"
+ "<address>jianXi</address><age>2</age><name>xiaoMing</name><sex>yy</sex><userId>22</userId>"
+ "</user>";
String json = convertXmlToJson(xml);
System.out.println(json);
System.out.println(
readValue(convertXmlToJson(xml), User.class).toString());
}
import java.io.StringWriter;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.testtt.main.model.User;
public class XmlUtil {
private static XmlMapper xmlMapper = new XmlMapper();
private static ObjectMapper objectMapper = new ObjectMapper();
/**
* xml字串轉成JSON格式字串
*
* @param xmlStr
* @return
*/
public static String convertXmlToJson(String xml) {
StringWriter w = new StringWriter();
try {
JsonParser jp = xmlMapper.getFactory().createParser(xml);
JsonGenerator jg = objectMapper.getFactory().createGenerator(w);
while (jp.nextToken() != null) {
jg.copyCurrentEvent(jp);
}
jp.close();
jg.close();
} catch (Exception e) {
e.printStackTrace();
}
return w.toString();
}
/**
* JSON轉換成Object
*
* @param jsonStr
* JSON格式字串
* @param valueType
* 物件
* @return
*/
public static <T> T readValue(String jsonStr, Class<T> clazz) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, clazz);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<user>"
+ "<address>jianXi</address><age>2</age><name>xiaoMing</name><sex>yy</sex><userId>22</userId>"
+ "</user>";
String json = convertXmlToJson(xml);
System.out.println(json);
System.out.println(
readValue(convertXmlToJson(xml), User.class).toString());
}