Das scheint in der Parse Routine zu haken:
Delphi-Quellcode:
class function TTestMarshal_Parcel.Unmarshal_FromString(value: String): TTestMarshal_Parcel;
var
LJson: TJSONObject;
begin
LJson := TJSONObject.Create;
try
LJson := TJSONObject.ParseJSONValue( value ) as TJSONObject; // HIER komt nil
Result := InternalUnmarshal_FromObject( LJson )
finally
LJson.Free;
end;
end;
Wenn im Value NaN, oder sogar nur Single.MAXVALUE (natürlich als Zahl) steht kommt nil raus.
Andere Zahlen funktionieren.
Mit der Test-Anwendung kann man die Unterschiede sehen Test1 ist OK, die andenen stimmen nicht exakt überein.
Haben denn die JSON-Funktionen ganz andere Zahlenräume als die normalen Delphi Variablen ?
Ich bin davon ausgegaben das Objekte mit dem Serializer und Unserializer 1:1 hergestellt werden können, oder gibt es da ansonsten einen Fehler ?
Rollo