Fix loading null as Guid for object refs in C++ Json parser

This commit is contained in:
Wojtek Figat
2021-08-27 16:06:23 +02:00
parent 7f00fa4fd9
commit e4cb87ea9e
3 changed files with 24 additions and 19 deletions

View File

@@ -103,6 +103,28 @@ Matrix JsonTools::GetMatrix(const Value& value)
return result;
}
Guid JsonTools::GetGuid(const Value& value)
{
if (value.IsNull())
return Guid::Empty;
CHECK_RETURN(value.GetStringLength() == 32, Guid::Empty);
// Split
const char* a = value.GetString();
const char* b = a + 8;
const char* c = b + 8;
const char* d = c + 8;
// Parse
Guid result;
StringUtils::ParseHex(a, 8, &result.A);
StringUtils::ParseHex(b, 8, &result.B);
StringUtils::ParseHex(c, 8, &result.C);
StringUtils::ParseHex(d, 8, &result.D);
return result;
}
DateTime JsonTools::GetDate(const Value& value)
{
return DateTime(value.GetInt64());