Примери за използване на JSON в Synopse mORMot Framework, блог на Sharakhov A
Първични връзки
Примери за използване на JSON в Synopse mORMot Framework
Поддръжката на JSON е доста силно интегрирана в mORMot. Възможностите за сериализация са доста широки, въпреки че не всички от тях са на повърхността.
Страхотно е, че сериализацията на обекти на mORMot е изградена около RTTI, дори и за по-стари версии на Delphi. Свойствата на сериализуем обект трябва да бъдат декларирани като публикувани.
Сериализацията на прости свойства (число, дата, низ, булев тип) се извършва автоматично и не създава никакви затруднения.
Структурните свойства (запис, масив от записи и масив от стойности) също се сериализират автоматично, но по подразбиране се преобразуват в низ Base64. Ако искате да получите четливо представяне, тогава трябва да напишете прости функции за обратно извикване на Reader / Writer или да използвате масиви от предварително дефинирани типове.
В прикачения източник умишлено не използвах предварително дефинираните типове масиви, за да демонстрирам възможността за превключване на представянето на данните.
Също така имайте предвид, че преди десериализация, JSON низът първо се копира в междинен буфер. Това е необходимо, тъй като данните в буфера се променят по време на десериализацията.
Ако JSON низът не се използва в програмата след десериализация, този код може да бъде съкратен:
С малко копаене във вътрешността на mORMot можете дори да откриете начин за сериализиране на редовни записи или масиви от записи. Точно както при работа с обекти, в този случай е възможно да се получи представянето на полетата за запис както като подреден масив от ненаименувани стойности, така и като AV-двойки.