Práce s ukazateli JSON

Automaticky přeloženo z Deepl

V 4D v16 R4, jsme obohatili objektové příkazy tak, abyste mohli validovat objekty JSON. 4D v16 R5 jde ještě dál a zavádí podporu ukazatelů JSON. Skvělé – ale co je to ukazatel JSON a co s ním mohu dělat?

Stejně jako neukládáte údaje o firmě pro každého zaměstnance do záznamu v databázi (místo toho používáte odkaz na záznam o firmě), může být opravdu užitečné strukturovat dokument JSON pomocí částí, které lze opakovaně použít na mnoha místech.

Vezměme si například příklad objednávky na webové stránce; zákazník zadá dodací adresu a označí stejnou fakturační adresu. Místo duplikování informací o adrese můžeme definovat dodací adresu jako odkaz na fakturační adresu.

Dalším scénářem je definování objektu šablony obsahujícího výchozí vlastnosti uložené ve formátu JSON a sloučení některých vlastností s informacemi uloženými v samostatném souboru JSON.

Objekty, které obsahují cykly( tj. dva objekty, které se navzájem obsahují), nelze v JSONu řetězit. Ukazatele JSON jsou způsobem, jak vyjádřit cyklický odkaz při zachování kompatibility s formátem JSON.

KONCEPCE ukazatele JSON

Ukazatel JSON je standard, který definuje syntaxi řetězce, který lze použít k přístupu k určitému poli nebo hodnotě klíče ve stejném nebo jiném dokumentu JSON. Skládá se z řetězců oddělených znakem „/“. Tyto řetězce určují buď klíče v objektech, nebo indexy v polích. Syntaxe ukazatele JSON je definována v dokumentu RFC 6901.

Například tento objekt:

{
    "foo": {"$ref": "#/bar"},
    "bar": "42"
}

lze přeložit jako:

{
   "foo": "42",
   "bar": "42"
}

PŘÍKAZ: NEW COMMAND

Proměnná JSON resolve pointers příkaz analyzuje všechny ukazatele JSON nalezené v objektu předaném jako parametr s ohledem na některá nastavení voleb (pokud existují). Příkaz pak vrátí objekt se stavem úspěšnosti, výslednou hodnotou a případným seznamem chyb.

NĚKOLIK PŘÍKLADŮ… to se vždycky hodí!

Podívejte se na naši ukázkovou databázi, abyste se dozvěděli (a pochopili) více o tom, jak ukazatele JSON fungují!

Příklad databáze

Kromě ukázky zde máme další příklad – vezměme proměnnou $object, která obsahuje následující údaje:

Pokud spustím níže uvedený kód:

$result:=JSON Resolve pointers($object)
TRACE

Zde je to, co dostanu v proměnných $object a $result:

blank

Všimněte si, že $result je objekt, který obsahuje jak stav úspěšnosti, tak vrácenou hodnotu. Pokud by se vyskytly nějaké chyby, byly by také zahrnuty.

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.