xml字符串转java对象

 

下面是一个简单的例子

 

package com.yydone.dto;

import java.io.Serializable;
import java.util.List;

public class ItemInfoDto implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private Integer itemCount;
	private List<ItemDto> itemList;
	
	public Integer getItemCount() {
		return itemCount;
	}
	public void setItemCount(Integer itemCount) {
		this.itemCount = itemCount;
	}
	public List<ItemDto> getItemList() {
		return itemList;
	}
	public void setItemList(List<ItemDto> itemList) {
		this.itemList = itemList;
	}
}

 

package com.yydone.dto;

import java.io.Serializable;
import java.math.BigDecimal;

public class ItemDto implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private String itemProductName;
	private BigDecimal itemUnitPrice;
	private Integer itemQuantity;
	
	public String getItemProductName() {
		return itemProductName;
	}
	public void setItemProductName(String itemProductName) {
		this.itemProductName = itemProductName;
	}
	public BigDecimal getItemUnitPrice() {
		return itemUnitPrice;
	}
	public void setItemUnitPrice(BigDecimal itemUnitPrice) {
		this.itemUnitPrice = itemUnitPrice;
	}
	public Integer getItemQuantity() {
		return itemQuantity;
	}
	public void setItemQuantity(Integer itemQuantity) {
		this.itemQuantity = itemQuantity;
	}
	
	
}

 

package com.test.util;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.junit.Test;

import com.yydone.dto.ItemDto;
import com.yydone.dto.ItemInfoDto;
import com.thoughtworks.xstream.XStream;

public class TestXmlUtil {

	@Test
	public void parse() {
		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
				"<ItemInfo>" +
				"	<ItemCount>2</ItemCount>" +
				"	<ItemList>" +
				"		<Item>" +
				"			<ItemProductName>商品1</ItemProductName>" +
				"			<ItemUnitPrice>5.63</ItemUnitPrice>" +
				"			<ItemQuantity>1</ItemQuantity>" +
				"		</Item>" +
				"		<Item>" +
				"			<ItemProductName>商品2</ItemProductName>" +
				"			<ItemUnitPrice>8.36</ItemUnitPrice>" +
				"			<ItemQuantity>2</ItemQuantity>" +
				"		</Item>" +
				"   </ItemList>" +
				"</ItemInfo>";
		
		XStream xStream = new XStream();
		xStream.alias("ItemInfo", ItemInfoDto.class);
		xStream.alias("Item", ItemDto.class);
		xStream.aliasField("ItemCount", ItemInfoDto.class, "itemCount");
		xStream.aliasField("ItemList", ItemInfoDto.class, "itemList");
		
		xStream.aliasField("ItemProductName", ItemDto.class, "itemProductName");
		xStream.aliasField("ItemUnitPrice", ItemDto.class, "itemUnitPrice");
		xStream.aliasField("ItemQuantity", ItemDto.class, "itemQuantity");
		ItemInfoDto dto = (ItemInfoDto)xStream.fromXML(xml);
		System.out.println(ToStringBuilder.reflectionToString(dto));
	}
}

需要依赖的 xml的pom为:

<dependency>
	<groupId>xstream</groupId> 
	<artifactId>xstream</artifactId> 
	<version>1.2.2</version> 
</dependency>

 

你可能感兴趣的:(java)