public byte[] getData() {
		if (0 == this.count) {
			return XsonConst.NULL_OBJECT_BYTES;
		}
		int dataDomainCount = this.count;

		boolean hasClass = writeDependClasses();
//		boolean hasClass = false;

		byte[] value = null;
		int pos = 0;

		if (hasClass) {
			byte[] temp = ByteUtils.intToByte(dataDomainCount);
			int headLength = temp.length + 1;
			value = new byte[this.count + headLength];
			if (2 == headLength) {
				value[0] = XsonConst.HEAD_1;
				value[1] = temp[0];
			} else if (3 == headLength) {
				value[0] = XsonConst.HEAD_2;
				value[1] = temp[0];
				value[2] = temp[1];
			} else if (4 == headLength) {
				value[0] = XsonConst.HEAD_3;
				value[1] = temp[0];
				value[2] = temp[1];
				value[3] = temp[2];
			} else {
				value[0] = XsonConst.HEAD_4;
				value[1] = temp[0];
				value[2] = temp[1];
				value[3] = temp[2];
				value[4] = temp[3];
			}
			pos = headLength;
		} else {
			value = new byte[this.count + 1];
			value[0] = XsonConst.HEAD_0;
			pos = 1;
		}
		int size = dataList.size();
		for (int i = 0; i < size; i++) {
			byte[] item = dataList.get(i);
			int length = item.length;
			for (int j = 0; j < length; j++) {
				value[pos++] = item[j];
			}
			// ArrayCopy
//			System.arraycopy(item, 0, value, pos, length);
//			pos += length;
		}
		return value;
	}