
DataSet Serialize es un conjunto de características para que el trabajo con JSON y el conjunto de datos sean simples. Tiene características tales como exportar o importar registros en un conjunto de datos, validar si JSON tiene todos los atributos requeridos (previamente ingresados en el conjunto de datos), exportando o importando la estructura de los campos del conjunto de datos en formato JSON. Además de administrar JSON anidado a través de Detalle Master o usar TDatasetfield (usted elige la forma en que mejor se adapte a usted). Todo esto usando ayudantes de clase, lo que lo hace aún más simple y más fácil de usar.
[Optional] Para facilitar, recomiendo usar el jefe (Manager de dependencia para Delphi) para la instalación, simplemente ejecutando el comando a continuación en un terminal (Windows PowerShell por ejemplo): boss install github.com/viniciussanchez/dataset-serialize
Si elige instalar manualmente, simplemente agregue las siguientes carpetas a su proyecto, en Proyecto> Opciones> Construcción> Compilador Delphi> Ruta de búsqueda
../dataset-serialize/src
Todas las características ofrecidas por DataSet Serialize se encuentran en la clase Helper en unidades de datos. Para comenzar su proyecto, simplemente agregue su referencia donde se necesita su funcionalidad. Aquí hay un ejemplo:
uses DataSet.Serialize;Veamos ahora cada característica, sus reglas y peculiaridades, para ofrecer lo mejor a todos los usuarios.
Crear un objeto JSON con información de un registro de conjunto de datos parece una tarea muy simple. Pero esa tarea se hizo más fácil. DataSet Serialize tiene dos funciones para esto, a saber, TojsonObject y TojsonArray. Veamos el uso de las funciones:
var
LJSONArray: TJSONArray;
LJSONObject: TJSONObject;
begin
LJSONObject := qrySamples.ToJSONObject(); // export a single record
LJSONArray := qrySamples.ToJSONArray(); // export all records
end ;¿Cuál es la diferencia entre las dos funciones? TojsonObject solo convertirá el registro del conjunto de datos actual en un TJSONObject. TojsonArray se convertirá en un TJSONArray todos los registros del conjunto de datos y no solo el registro seleccionado.
Parámetros
AChildRecords : indica si exporta o no los registros infantiles (a través de Detalle Master o Tdatasetfield).AOnlyUpdatedRecords : indica si exportar solo los registros que se han modificado (registros agregados, cambiados o eliminados). Esta característica solo está disponible cuando se usa Firedac. La propiedad CachedUpdates debe ser verdadera;TojsonObject
{} );Tojsonarray
[] );Una característica no muy útil pero importante es Savestructure y LoadStructure. Como el nombre ya dijo, es posible guardar la estructura completa de los campos configurados en el conjunto de datos y también cargar una estructura en formato JSON. Aquí hay un ejemplo de cómo cargar y exportar campos del conjunto de datos:
var
LJSONArray: TJSONArray;
begin
LJSONArray := qrySamples.SaveStructure;
qrySamples.LoadStructure(LJSONArray, True);
end ;Se controlan las siguientes propiedades:
Alignment, FieldName, DisplayLabel, DataType, Size, Key, Origin, Required, Visible, ReadOnly, and AutoGenerateValue ;
Parámetros
AOwns : indica quién es responsable de destruir el JSON aprobado como parámetro.Sabestructura
[] );Estructura de carga
La función ValidateJson es muy útil cuando queremos validar en un servidor, por ejemplo, si el JSON que recibimos en la solicitud tiene toda la información requerida. Prácticamente, todos los campos en el conjunto de datos están atravesados, verificando si los campos requeridos se ingresaron en JSON. Si el campo se requiere y no se ha ingresado en JSON, se agregará a la matriz JSON devuelta por la función. Vea el ejemplo a continuación:
begin
LJSONArray := qrySamples.ValidateJSON( ' {"country":"Brazil"} ' );
end ; Al recibir {"country": "Brazil"} , suponiendo que nuestro conjunto de datos tenga 3 campos (id, primer_name, país), y se requiere el campo ID y First_Name, los siguientes se devolverán:
[{"field":"id","error":"Id not informed"},{"field":"firstName","error":"Name not informed"}]
Parámetros
ALang : responsable de cambiar el idioma utilizado en el ensamblaje de mensajes (el valor predeterminado es el inglés);AOwns : indica quién es responsable de destruir el JSON aprobado como parámetro;Validatejson
[] );DataSet Serializa le permite cargar un conjunto de datos con un JSONOBJECT, JSONArray e incluso un JSON anidado, todo resumido en un método: LoadFromJson (). Aquí hay un ejemplo de cómo usarlo:
begin
qrySamples.LoadFromJSON( ' {"firstName":"Vinicius Sanchez","country":"Brazil"} ' );
end ;Parámetros
AOwns : indica quién es responsable de destruir el JSON aprobado como parámetro;Loadfromjson
Con DataSet Serialize, aún puede cambiar el registro del conjunto de datos simplemente utilizando MergeFromJSONObject. La función es similar a loadFromJson. Un ejemplo de uso es para servidores REST cuando el verbo utilizado en la solicitud se coloca (no necesariamente), en este caso no queremos incluir un nuevo registro sino para cambiar el registro actual.
begin
qrySamples.MergeFromJSONObject( ' {"firstName":"Vinicius","country":"United States"} ' );
end ;Parámetros
AOwns : indica quién es responsable de destruir el JSON aprobado como parámetro;MergefromjsonObject
Puede personalizar algunas características de DataSet-Serialize:
TDataSetSerializeConfig.GetInstance.DateInputIsUTC := True; TDataSetSerializeConfig.GetInstance. Export .ExportNullValues := True; TDataSetSerializeConfig.GetInstance. Export .TryConvertStringToJson := True; TDataSetSerializeConfig.GetInstance. Export .ExportOnlyFieldsVisible := True; TDataSetSerializeConfig.GetInstance. Export .ExportChildDataSetAsJsonObject := False; TDataSetSerializeConfig.GetInstance. Export .ExportLargeIntAsString := False; TDataSetSerializeConfig.GetInstance. Export .ExportBCDAsFloat := False; TDataSetSerializeConfig.GetInstance. Import .ImportOnlyFieldsVisible := True; TDataSetSerializeConfig.GetInstance. Import .DecodeBase64BlobField := True; TDataSetSerializeConfig.GetInstance.RemoveBlankSpaceFieldName := True; // default // cndNone, cndLower, cndUpper, cndLowerCamelCase, cndUpperCamelCase
TDataSetSerializeConfig.GetInstance.CaseNameDefinition := TCaseNameDefinition.cndLowerCamelCase;
TCaseNameDefinition.cndNone:
[ { "MOB_ICADASTRO":11795,"MOB_EMI_REG":6,"CODIGODOCLIENTE":1,"CDOCUMEN1":"999999" } ]
TCaseNameDefinition.cndLower:
[ { "mob_icadastro":11795,"mob_emi_reg":6,"codigodocliente":1,"cdocumen1":"999999" } ]
TCaseNameDefinition.cndUpper:
[ { "MOB_ICADASTRO":11795,"MOB_EMI_REG":6,"CODIGODOCLIENTE":1,"CDOCUMEN1":"999999" } ]
TCaseNameDefinition.cndLowerCamelCase:
[ { "mobIcadastro":11795,"mobEmiReg":6,"codigodocliente":1,"cdocumen1":"999999" } ]
TCaseNameDefinition.cndUpperCamelCase:
[ { "MobIcadastro":11795,"MobEmiReg":6,"Codigodocliente":1,"Cdocumen1":"999999" } ] TDataSetSerializeConfig.GetInstance. Export .FormatDate := ' YYYY-MM-DD ' ; TDataSetSerializeConfig.GetInstance. Export .FormatCurrency := ' 0.00## ' ; TDataSetSerializeConfig.GetInstance. Export .FormatFloat := ' ,0.00 ' ; TDataSetSerializeConfig.GetInstance.DataSetPrefix := [ ' mt ' , ' qry ' ];Consulte nuestro proyecto de muestra para cada situación presentada anteriormente en funcionamiento. Si tiene alguna pregunta o sugerencia, comuníquese, haga su solicitud de extracción o cree un problema.

DataSet-Serialize es un software gratuito y de código abierto con licencia bajo la licencia MIT.
Solo vamos más rápido. Juntos vamos más allá.