public void init() {
		this.count = this.value.length;
		byte head = this.value[0];
		boolean hasClass = true;
		switch (head) {
		case XsonConst.HEAD_0:
			this.dataCount = this.count - 1;
			hasClass = false;
			this.index = 1;
			break;
		case XsonConst.HEAD_1:
			this.dataCount = ByteUtils.byteToInt(this.value, 1, 1);
			this.index = 2;
			break;
		case XsonConst.HEAD_2:
			this.dataCount = ByteUtils.byteToInt(this.value, 1, 2);
			this.index = 3;
			break;
		case XsonConst.HEAD_3:
			this.dataCount = ByteUtils.byteToInt(this.value, 1, 3);
			this.index = 4;
			break;
		case XsonConst.HEAD_4:
			this.dataCount = ByteUtils.byteToInt(this.value, 1, 4);
			this.index = 5;
			break;
		case XsonConst.NULL:
			return;
		default:
			throw new XsonDeserializerException(
					"Unknown XSON protocol header : "
							+ ByteUtils.byteToInt(head));
		}
		// checkValue();
		if (hasClass) {
			parseClassList();
		}
	}