Jackson工具--实现微信支付对象的封装

本文介绍了如何利用Jackson工具包在Java SpringBoot项目中进行XML和JSON的转换,特别是在微信支付场景下。文章详细展示了XML的解析过程,包括创建请求实体类和响应对象,以及具体的序列化操作,提供了便捷的对象封装方法。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值