# xco
**Repository Path**: 6666/xco
## Basic Information
- **Project Name**: xco
- **Description**: XSON Common Object
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2017-01-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# XCO
------
### 1. XCO简介
XCO(XSON common object)是一种通用的数据对象, 底层采用一种类似Map的数据结构进行数据的存储访问,能够方便的以XML方式对数据对象进行序列化和反序列化,适合同构、异构系统之间的数据传输和交换。
### 2. 支持的数据类型
a. 8种基本类型(byte, boolean, short, int, long, float, double, char)
b. 8种基本类型数组
e. String, String数组, String集合
c. Date, sql.Date, sql.Time
d. BigInteger, BigDecimal
e. XCO, XCO数组, XCO集合
### 3. XML格式
说明
a. 以此为例:
H: 数据类型标识,当前标示short类型
K: key
V: 具体数值
b. 数据类型标识说明
B: byte
H: short
I: int
L: Long
F: float
D: double
C: char
O: boolean
S: String
X: xco
A: date
E: sql.date
G: sql.time
J: sql.timestamp
K: bigInteger
M: bigDecimal
..
其他详见:org.xson.common.object.DataType
### 4. 常用方法
a. 赋值
public final void setIntegerValue(String field, int var)
设置一个int类型的值, field为key
public final void setStringValue(String field, String var)
设置一个String类型的值, field为key
//setXxx
b. 取值
public final int getIntegerValue(String field)
获取一个int类型的值, field为key
public final String getStringValue(String field)
获取一个String类型的值, field为key
//getXxx
c. 序列化
public String toXMLString()
把XCO对象以XML方式进行序列化
public static XCO fromXML(String xml)
从一个XML字符串反序列化为XCO对象
public String toJSON()
把XCO对象以JSON方式进行序列化
### 5. 使用示例
XCO xco = new XCO();
// 设置基本类型
xco.setByteValue("byteVal", (byte) 3);
xco.setBooleanValue("booleanVal", true);
xco.setShortValue("shortVal", (short) 5);
xco.setIntegerValue("intVal", 2);
xco.setLongValue("longVal", 2L);
xco.setFloatValue("floatVal", 2.0F);
xco.setDoubleValue("doubleVal", -0.3D);
xco.setCharValue("charVal", 'x');
// 设置对象类型
xco.setStringValue("stringVal", "hello world");
xco.setDateTimeValue("dateTimeVal", new java.util.Date());
xco.setDateValue("dateVal", new java.sql.Date(System.currentTimeMillis()));
xco.setTimeValue("TimeVal", new java.sql.Time(System.currentTimeMillis()));
xco.setBigIntegerValue("bigIntegerVal", new BigInteger("1380000"));
xco.setBigDecimalValue("bigDecimal", new BigDecimal("1380000.9999"));
xco.setXCOValue("xcoVal", new XCO());
// 设置数组
xco.setIntegerArrayValue("intArray", new int[] { 1, 3, 5, 8 });
xco.setStringArrayValue("stringArray", new String[] { "aa", "bb", "cc" });
// 设置集合
List list = new ArrayList();
xco.setStringListValue("stringList", list);
Set set = new TreeSet();
xco.setStringSetValue("stringSet", set);
// XML序列化
String xml = xco.toXMLString();
// 反序列化
XCO newXco = XCO.fromXML(xml);
// 取值
byte byteVal = xco.getByteValue("byteVal");
boolean booleanVal = xco.getBooleanValue("booleanVal");
short shortVal = xco.getShortValue("shortVal");
int intVal = xco.getIntegerValue("intVal");
long longVal = xco.getLongValue("longVal");
float floatVal = xco.getFloatValue("floatVal");
double doubleVal = xco.getDoubleValue("doubleVal");
String stringVal = xco.getStringValue("stringVal");
XCO xcoVal = xco.getXCOValue("xcoVal");
### 6. 设计图
