|
|
|
|
|
- Deserialización
- Velocidad
- Limitaciones
Deserializa un búfer o una cadena de caracteres que contiene los datos de una clase, estructura, array (incluyendo un array asociativo), cola, pila, lista o variable avanzada (por ejemplo gglCalendar), así como sus subelementos.
MyArray is array of strings
bufResult is Buffer
Add(MyArray, "WINDEV")
Add(MyArray, "WEBDEV")
Add(MyArray, "WINDEV MOBILE")
Serialize(MyArray, bufResult, psdJSON)
MyRebuiltArray is array of strings
Deserialize(MyRebuiltArray, bufResult, psdJSON)
Sintaxis
Deserialize(<Variable> , <Buffer> , <Parameters>)
<Variable>: Tipo de variable Variable de tipo Structure, Class, Array, Queue, List o Stack. - Para una estructura o clase, se debe asignar un valor a esta variable.
- Para un array, cola, lista o pila, un valor se asigna automáticamente a esta variable durante la deserialización.
El resultado de la deserialización se asignará a esta variable. <Buffer>: Cadena ANSI o Búfer Variable que contiene los datos serializados. Se debe especificar un nombre de variable. <Parameters>: Constante de tipo Integer Tipo de deserialización (debe corresponder al tipo elegido para la serialización): | | psdBinary | Deserialización binaria. | psdBinaryFormat16 | Deserialización binaria compatible con la versión 16. Este formato debe utilizarse si una aplicación de la versión 17 o posterior debe compartir datos con una aplicación de la versión 16 o anterior. Este formato no debe utilizarse en modo Unicode. | psdJSON | Deserialización en formato JSON. | psdXML | Deserialización XML con referencia a subobjetos. Recordatorio: Este tipo de serialización/deserialización permite utilizar XML para almacenar e intercambiar datos en aplicaciones escritas en WLanguage. | psdXMLAggregated | Deserialización XML con agregación directa de subobjetos. Nota: La serialización en modo psdXMLAggregated permite generar fácilmente un archivo XML estándar para intercambiar datos con otros sistemas. La deserialización en modo psdXMLAggregated está disponible. Sin embargo, los elementos WLanguage (variants, arrays, clases derivadas, etc.) serán diferentes de los elementos de origen. | Novedad versión 2025psdXMLArrayRepeatedElements | Modo de deserialización XML para manipular arrays como una secuencia de elementos. Nota: Esta constante debe combinarse con la constante psdXMLAggregated. Nota: Esta constante solo está disponible a partir de la versión 2025 - Update 1. |
Observaciones Deserialización La deserialización de una variable de tipo Array, Queue o Stack elimina el contenido del elemento. Si hay miembros adicionales en la estructura o clase: - si se deserializa una estructura o clase, los miembros adicionales conservan sus valores anteriores a la deserialización.
- si se deserializa un array de estructuras o clases, los miembros adicionales toman el valor predeterminado del tipo de miembro.
Si hay miembros adicionales en el búfer serializado, se ignoran durante la deserialización. Para deserializar un array dinámico no tipado, primero es necesario asignarle memoria Para deserializar una clase o estructura que contiene un array dinámico no tipado, primero es necesario asignarle memoria. La biblioteca wd300xml.dll o wp300xml.dll es necesaria para deserializar un documento XML. Una variable avanzada que se serializó con una versión en francés del producto (y cuyos nombres y propiedades están en francés en el búfer de serialización) puede ser deserializada por una versión en inglés y viceversa. En las variables avanzadas: - Las propiedades de solo lectura no suelen ser deserializables.
- Las propiedades de solo escritura no suelen ser serializables.
Los casos especiales se especifican en la documentación de cada tipo. Velocidad La deserialización binaria es más rápida que la deserialización XML. Limitaciones - Los arrays fijos y asociativos de estructuras locales no pueden deserializarse.
- Los miembros globales de las clases no se serializan/deserializan.
- La serialización/deserialización XML de un array de estructuras con un miembro de cadenas que contiene "\0" o Charact(0) devuelve el siguiente error: "Formato de serialización incorrecto". En este caso, se requiere una serialización/deserialización binaria.
- No se puede serializar/deserializar un array de clases o estructuras si contienen un array dinámico no tipado. Es necesario utilizar un array dinámico tipado en la clase o estructura.
- Para serializar/deserializar una clase, necesita un constructor sin parámetros obligatorios.
No se pueden serializar/deserializar variables de tipo Queue, Stack o List. - Solo la serialización JSON está disponible para variables de tipo Record. No es posible la deserialización.
- Gestión de errores: La función Deserialize no devuelve códigos de error. Si se produce un error, la variable ErrorOccurred se establece en True.
Clasificación Lógica de negocio / UI: Código neutro
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|