Jackson工具包
本文工具类,是在支付系统中,针对微信支付的xml解析,和服务之间json解析:
- Xml和对象之间转换
- Json和对象之间转换
目录
Jackson介绍
Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。同时也提供对xml的处理,具体源码请参考Github.
依赖包
项目适应SpringBoot架构,只需要导入xml解析包即可:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
工具类
/**
* hxgy Inc.
* Copyright (c) 2004-2017 All Rights Reserved.
*/
package com.hxgy.pay.commons.utils;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
/**
* jackson工具包
* @author XiongYu
* @version $Id: JacksonUtils.java, v 0.1 2017年4月27日 下午1:52:52 XiongYu Exp $
*/
public class JacksonUtils {
private static final XmlMapper xmlMapper = new XmlMapper();
private static ObjectMapper objectMapper = new ObjectMapper();
//--------------------------------------XML工具---------------------------------------------
/**
* 对象解析出xmlString
* @param request
* @return
* @throws IOException
* @throws JsonMappingException
* @throws JsonGenerationException
* @throws Exception
*/
public static String objectParseXml(Object object) throws JsonGenerationException,
JsonMappingException, IOException {
StringWriter sw = new StringWriter();
xmlMapper.writeValue(sw, object);
return sw.toString();
}
/**
* 输出全部属性 如果xml中存在,对象中没有,则自动忽略该属性 失败返回null
*
* @param xmlContent
* @param clazz
* @return
* @throws IOException
* @throws JsonMappingException
* @throws JsonParseException
*/
public static <T> T xmlToNormalObject(String xmlContent, Class<T> clazz) throws JsonParseException, JsonMappingException, IOException {
return xmlToObject(xmlContent, clazz);
}
/**
* 输出全部属性
* 如果xml中存在&#x