-
-
Notifications
You must be signed in to change notification settings - Fork 375
Closed
Labels
acceptedIssue has been accepted and inserted in a future milestoneIssue has been accepted and inserted in a future milestonebug
Milestone
Description
Solution (MVCFramework.Serializer.JsonDataObjects.pas, method TMVCJsonDataObjectsSerializer.JsonDataValueToAttribute).
`jdtObject:
begin
if (AValue.TypeInfo = System.TypeInfo(TValue)) then
AValue := TValue.FromVariant(AJsonObject[AName].O['value'].VariantValue)
else
begin
// dt: if a key is null, jsondataobjects assign it the type jdtObject
if AJsonObject[AName].ObjectValue <> nil then
begin
[ ... skip ... ]
end
else begin
// Nullable types
case AValue.Kind of
tkRecord:
begin
if AValue.TypeInfo = TypeInfo(NullableString) then
begin
AValue := TValue.From<NullableString>(Default(NullableString));
end
else if AValue.TypeInfo = TypeInfo(NullableTDate) then
begin
AValue := TValue.From<NullableTDate>(Default(NullableTDate));
end
else if AValue.TypeInfo = TypeInfo(NullableTDateTime) then
begin
AValue := TValue.From<NullableTDateTime>(Default(NullableTDateTime));
end
else if AValue.TypeInfo = TypeInfo(NullableTTime) then
begin
AValue := TValue.From<NullableTTime>(Default(NullableTTime));
end
else if AValue.TypeInfo = TypeInfo(NullableCurrency) then
begin
AValue := TValue.From<NullableCurrency>(Default(NullableCurrency));
end
else if AValue.TypeInfo = TypeInfo(NullableBoolean) then
begin
AValue := TValue.From<NullableBoolean>(Default(NullableBoolean));
end
else if AValue.TypeInfo = TypeInfo(NullableSingle) then
begin
AValue := TValue.From<NullableSingle>(Default(NullableSingle));
end
else if AValue.TypeInfo = TypeInfo(NullableDouble) then
begin
AValue := TValue.From<NullableDouble>(Default(NullableDouble));
end
else if AValue.TypeInfo = TypeInfo(NullableExtended) then
begin
AValue := TValue.From<NullableExtended>(Default(NullableExtended));
end
else if AValue.TypeInfo = TypeInfo(NullableInt16) then
begin
AValue := TValue.From<NullableInt16>(Default(NullableInt16));
end
else if AValue.TypeInfo = TypeInfo(NullableUInt16) then
begin
AValue := TValue.From<NullableUInt16>(Default(NullableUInt16));
end
else if AValue.TypeInfo = TypeInfo(NullableInt32) then
begin
AValue := TValue.From<NullableInt32>(Default(NullableInt32));
end
else if AValue.TypeInfo = TypeInfo(NullableUInt32) then
begin
AValue := TValue.From<NullableUInt32>(Default(NullableUInt32));
end
else if AValue.TypeInfo = TypeInfo(NullableInt64) then
begin
AValue := TValue.From<NullableInt64>(Default(NullableInt64));
end
else if AValue.TypeInfo = TypeInfo(NullableUInt64) then
begin
AValue := TValue.From<NullableUInt64>(Default(NullableUInt64));
end
end;
end;
`
Metadata
Metadata
Assignees
Labels
acceptedIssue has been accepted and inserted in a future milestoneIssue has been accepted and inserted in a future milestonebug