XStream使用
导入pom
<dependencies>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.18</version>
</dependency>
</dependencies>
定义实体类
public class WxPayRequest {
private String appid;
@XStreamAlias("mch_id")
private String mchId;
@XStreamAlias("nonce_str")
private String nonceStr;
private String sign;
private String body;
@XStreamAlias("out_trade_no")
private String outTradeNo;
@XStreamAlias("total_fee")
private Integer totalFee;
@XStreamAlias("spbill_create_ip")
private String spbillCreateIp;
@XStreamAlias("notify_url")
private String notifyUrl;
@XStreamAlias("trade_type")
private String tradeType;
}
出现双_问题解决(我是通过替换的方式)
// 生成xml文件信息
XStream xStream = new XStream();
// 1--通过设置 autodetectAnnotations(true),XStream 会自动识别这些注解,并根据注解的信息来进行序列化和反序列化操作,从而使用设置的别名来表示类和字段。
xStream.autodetectAnnotations(true);
xStream.alias("xml", WxPayRequest.class);
String requestXml = xStream.toXML(wxPayRequest);
// 2-- 生成的是双_ 格式的 最后替换一下即可
requestXml = requestXml.replaceAll("__", "_");