Objekty jsou skvělé! Jejich flexibilita v kombinaci s rychlostí a elegancí z nich činí první volbu pro většinu vývojářů. Používání dat uvnitř objektů je nyní jednodušší a intuitivnější. Od nynějška lze data nastavovat jako data – a ne jako řetězce uvnitř objektů!
Jak to funguje?
Chcete-li používat data uvnitř objektů, stačí v Nastavení databáze zaškrtnout nastavení kompatibility „Použít v objektech typ data místo formátu data ISO„.
Jakmile je toto provedeno, OB SET a OB Get pracovat bez požadavku na konstantu is date.
OB SET ($myObject; "myDate";$date)
$date :=OB Get ($myObject; "myDate")
Zápis objektů také funguje! Podívejte se na to:
$myObject.myDate:=$date
$date :=$myObject.myDate
Stringify a Parse
Kompatibilita je zachována
Před verzí 4D v16 R6 se při volání příkazu JSON Stringify příkazu, byly objekty obsahující data systematicky „řetězeny“ podle normalizace ISO 8601 ve formátu „RRRR-MM-DDThhmmss.sssZ“ . Opačná operace, JSON Parse, tento formát standardně neinterpretovala, a proto vytvořila řetězec.
Co je nového?
Pokud je v nastavení databáze zaškrtnuta volba kompatibility, budou data při volání operace jednoduše formátována jako „RRRR-MM-DD“ (stále podle normy ISO 8601 ). JSON stringify příkazu. Při použití JSON Parse, bude pak tento řetězec nastaven jako datum (a nikoli jako řetězec) uvnitř objektu!
Dynamická změna režimu
V případě potřeby lze toto výchozí nastavení změnit programováním pomocí příkazu SET DATABASE PARAMETER příkazem a voličem Dates inside object.
Připomínáme: SET DATABASE PARAMETER(Dates inside object;option) je lokální pro aktuální proces.
Pro tento option jsou nyní možné tři hodnoty:
- String type without time zone (dříve známé jako ignorování místní časové zóny)
- String type with time zone (dříve známé jako zohlednit časové pásmo)
- Date type (nově!)
Výsledkem je, že při importu dat JSON do 4D máte nyní možnost dynamicky měnit formát dat.