java中x--与--x_GitHub - xsonorg/xco: XSON Common Object

XCO

1. XCO简介

XCO(XSON common object)是一种通用的数据对象, 底层采用一种类似Map的数据结构进行数据的存储访问,

能够方便的以XML和Byte[]的方式对数据对象进行序列化和反序列化,适合同构、异构系统之间的数据传输和交换。

2. XCO生态圈

42f86838a6223f2b79fb04ca79fbaf28.png

xco-java:XCO Java版本;

xco-c:XCO C语言版本;

3. 支持的数据类型

8种基本类型(byte, boolean, short, int, long, float, double, char)和其包装类型

8种基本类型数组

String

String数组

String集合

java.util.Date

java.sql.Date

java.sql.Time

java.sql.Timestamp

BigInteger

BigDecimal

XCO

XCO数组

XCO集合

4. 版本maven使用

当前最新版本:1.0.4

maven中使用

org.xson

common-object

1.0.4

5. 更新说明

1.0.4

调整取值策略,先整体取值,后OGNL取值

增加序列化时的字段过滤

1.0.3版本

增加append方法

1.0.2版本

支持Ognl表达式取值

增加getValue相关方法

增加remove方法

增加byte[]相关的序列化和反序列化操作

增加getData方法

6. 常用方法

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方式进行序列化

public byte[] toBytes() {

把XCO对象以byte[]方式进行序列化

public byte[] toBytes(int offsetLength)

把XCO对象以byte[]方式进行序列化,并保留偏移内容

public static XCO fromBytes(byte[] buffer)

从byte[]反序列化为XCO对象

public static XCO fromBytes(byte[] buffer, int offsetLength)

从byte[]的指定偏移长度开始,反序列化为XCO对象

7. 整合XSON

XCO对象的toBytes和fromBytes方法需要XSON框架支持,具体的使用操作如下:

a. 添加Maven依赖

org.xson

xson

1.0.2

b. 编辑xson.properties配置文件

# Support for XCO

xco=true

7. 使用示例

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();

// 从XML字符串反序列化

XCO newXco = XCO.fromXML(xml);

// 序列化为byte[]

byte[] buffer = xco.toBytes();

// 从byte[]反序列化

XCO newXco1 = XCO.fromBytes(buffer);

// 取值

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");

8. XML表示

上面使用示例中的XCO对象xco的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

9. 类图

a1cd4ca5ab9de153b6cc358678abb190.png

10. 官方网站

11. 沟通交流

QQ群:518522232**(请备注关注的项目)**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值