Example #1
0
VValueSingle* VJSONValue::CreateVValue(bool differentiateObjects) const
{
	VValueSingle* result = nil;
	switch (fType)
	{
		case JSON_true:
			result = new VBoolean(true);
			break;

		case JSON_false:
			result = new VBoolean(false);
			break;

		case JSON_string:
			result = new VString(fString);
			break;

		case JSON_number:
			result = new VReal(fNumber);
			break;

		case JSON_date:
			result = new VTime();
			((VTime*)result)->FromMilliseconds(fTimeStamp);
			break;

		case JSON_object:
			if (differentiateObjects)
			{
				result = new VString("\x01\x02\x03\x01");
				result->SetNull(false);
			}
			else
			{
				result = new VString();
				result->SetNull(true);
			}
			break;
		case JSON_array:
			if (differentiateObjects)
			{
				result = new VString("\x01\x02\x03\x02");
				result->SetNull(false);
			}
			else
			{
				result = new VString();
				result->SetNull(true);
			}
			break;
		default:
			result = new VString();
			result->SetNull(true);
			break;
	}
	return result;
}