jackson使用xml转json

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());
}


}


/******User******/

package com.testtt.main.model; import javax.xml.bind.annotation.XmlRootElement; //@XmlRootElement public class User { private String name; private String sex; private String address; private int age; private int userId; public User() { } public User(String name,String sex,String address,int age,int userId) { this.name = name; this.sex = sex; this.address = address; this.age = age; this.userId = userId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } @Override public String toString() { return "User [name=" + name + ",sex=" + sex + ",address=" + address + ",age=" + age + ",userId=" + userId + "]"; } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇