java中x--与--x_GitHub - xsonorg/xco: XSON Common Object
XCO
1. XCO简介
XCO(XSON common object)是一种通用的数据对象, 底层采用一种类似Map的数据结构进行数据的存储访问,
能够方便的以XML和Byte[]的方式对数据对象进行序列化和反序列化,适合同构、异构系统之间的数据传输和交换。
2. XCO生态圈
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. 类图
10. 官方网站
11. 沟通交流
QQ群:518522232**(请备注关注的项目)**
java中x--与--x_GitHub - xsonorg/xco: XSON Common Object相关推荐
- java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:
1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...
- java中synchronized的用法详解
记下来,很重要. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchron ...
- JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助...
什么是clone? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就 ...
- java中的祖先类_Java程序公共祖先类-Object
在Java中,所有的类都继承自Object类,它是所有的始祖,但是我们不需要显示的书写extends Object. equals方法 在JDK中,Object类的equals方法的实现如下: pub ...
- C#和Java中“==”和“equals”区别
C#中"=="和"equals"区别如下: 1 using System; 2 class Program 3 { 4 public static void M ...
- Java里面as_与Java中的C#关键字“ as”等效
在Java中,如果转换失败,是否可以尝试进行转换并返回null? public static < T > T as(Class< T > t, Object o) { retu ...
- Java中的Object类和Class类
Copyright©Stonee 在Java中,无论是类还是接口,它们在JVM的内存逻辑模型中都会存在Super和Class指针,分别指向根类(Object类)和反射类(Class类) 在这一篇blo ...
- java中long比较大小_java中Long类型比较大小和long类型的比较大小java中Long类型比较大小和long类型的比较大小...
今天遇到这样一个问题,我用 "=="来比较两个Long类型的数据,明明数值都相等,可是结果就是false 这要说到==和 equals 的区别了. 1. ==比较的是两个对象在内存 ...
- 快速解决java中的容器
首先已知java中任何类都有一个共同的父类,那就是Object类.若定义一个Object类数组,理论上可以涵盖任何类的数据.例如: public static void main(String[] a ...
最新文章
- 2020年数据中心行业研究报告
- 启明云端分享|直接用ESP32-S2和ESP32-C3驱动1.54寸串口屏,有哪些区别呢,他们的亮点又有哪些呢
- [洛谷P4012] [网络流24题] 深海机器人问题
- php 将多个数组 相同的键重组,PHP – 合并两个类似于array_combine但具有重复键的数组...
- flex 下对齐_Flex 布局示例
- 快速下载助手1.1--添加断点下载
- 诗歌,一路走来...
- QQ抢车位外挂(起始篇)--小研究成果展示
- 笔记6:Django基础
- CentOS 安装nload(流量统计)
- Centos yum安装snmp
- SHA256算法原理及其实现
- 人全外显子组测序WES学习笔记 第一天
- SAP ABAP GUI_DOWNLOAD中下载乱码的问题
- 实现简单的通信协议(STM32 F411RET6开发版)
- php类中遍历中的rewind方法,PHP rewind( )用法及代码示例
- led显示屏十大品牌
- .NET基础篇:解决VS2017引用无效问题。
- 无法连接到服务器的错误解决方案
- Java面试--Java内存模型