AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Gestión de la arquitectura de 3 niveles / Funciones WLanguage
  • Deserialización
  • Velocidad
  • Limitaciones
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Deserializa un buffer o una cadena de caracteres que contiene los datos de una clase, estructura, array (incluyendo una array asociativa ), cola, pila, lista o variable avanzada (gglCalendar, por ejemplo), así como sus subelementos.
Ejemplo
// This example explains how to use the Serialize/Deserialize functions
// with an Array variable.
// These functions can use all types of WLanguage variables.
 
MyArray is array of strings
bufResult is Buffer
 
// Adds elements into the array
Add(MyArray, "WINDEV")
Add(MyArray, "WEBDEV")
Add(MyArray, "WINDEV MOBILE")
 
// Serialize the array in the buffer in JSON
// => Save the array and its entire content in a JSON string
Serialize(MyArray, bufResult, psdJSON)
 
// Deserialize the JSON buffer
// => Rebuild the WLanguage array from the JSON string
MyRebuiltArray is array of strings
Deserialize(MyRebuiltArray, bufResult, psdJSON)
Sintaxis
Deserialize(<Variable> , <Buffer> , <Parameters>)
<Variable>: Tipo de variable
Estructura, clase, array, cola, lista o pila Variable.
  • Para una estructura o una clase, esta Variable debe ser asignada.
  • Para un array, una cola, una lista o una pila, este Variable se asigna automáticamente durante la deserialización.
La deserialización se realizará en esta Variable.
<Buffer>: Cadena de caracteres Ansi o buffer
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):
psdBinaryDeserialización binaria.
Java La deserialización binaria no está disponible.
psdBinaryFormat16Deserializació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.
Java La deserialización binaria no está disponible.
psdJSONDeserialización en formato JSON.
Java La deserialización de JSON no está disponible.
psdXMLDeserialización XML con reference a los subobjetos.
Recordatorio: Este tipo de serialización/deserialización le permite utilizar el formato XML como modos de almacenamiento e intercambio entre aplicaciones escritas en WLanguage..
psdXMLAggregatedDeserialización XML con agregación directa de subobjetos.
Observación: El modo de serialización psdXMLAggregated le permite generar fácilmente un archivo XML estándar para intercambiar datos con otros sistemas. El modo de deserialización psdXMLAggregated está disponible. Sin embargo, los elementos de WLanguage (variantes, arrays , clases derivadas, etc.) serán diferentes de los elementos originales.
Java Este modo de deserialización no está disponible.
Observaciones

Deserialización

La deserialización de un Variable de tipo Array, Cola o Pila borra el contenido del elemento.
Si hay miembros adicionales en la estructura o en la clase:
  • si una estructura o una clase se deserializa: los miembros adicionales mantienen sus valores de antes de la deserialización.
  • si se deserializa una array de estructuras o clases: Los miembros adicionales toman el valor Default del tipo de miembro.
Si hay miembros adicionales en el buffer serializado, se ignoran durante la deserialización.
Para deserializar una array dinámica no tipada, es necesario asignarla previamente.
Para deserializar una clase o una estructura que contiene una array dinámica no tipada, esta array debe ser asignada de antemano.
La biblioteca wd29 0xml.dll o wp29 0xml.dll es necesaria para deserializar un Document XML.
Un Variable avanzado que fue serializado con una versión francesa del producto (y cuyos nombres y propiedades están en francés en la memoria intermedia de serialización) puede ser deserializado por una versión inglesa del producto (y a la inversa).
En las variables avanzadas:
  • las propiedades de sólo lectura normalmente no pueden ser deserializadas.
  • las propiedades de sólo escritura normalmente no se pueden serializar.
Los casos especiales se anotan en la documentación de cada tipo.
Java Para que el formato de serialización sea compatible entre las aplicaciones WINDEV y las aplicaciones WINDEV Java, los nombres de los siguientes elementos serializados no deben contener ningún carácter especial ni acentuado:
  • clases,
  • arrays de clases,
  • estructuras,
  • array de estructuras.

Velocidad

La deserialización binaria es más rápida que la deserialización XML.

Limitaciones

  • La arrays fija y asociativa de estructuras locales no puede ser deserializada.
  • Los miembros globales de las clases no se serializan/deserializan.
  • La serialización/deserialización XML de una array de estructuras con un miembro de cadena que contiene "\0" o Charact( 0) devuelve el siguiente error: "Formato de serialización incorrecto". En este caso, se debe realizar una serialización/deserialización binaria.
  • No se puede serialize/deserialize un array de clase o estructura si esta clase o estructura contiene un array dinámico sin tipo. En esta clase o en esta estructura se debe utilizar una array dinámica con una clase definida.
  • Para serialize/deserialize una clase, debe tener un constructor sin parámetro obligatorio.
  • Java No se pueden serialize/deserialize variables de cola, pila o lista.
  • Sólo la serialización JSON está disponible para las variables Record. No es posible la deserialización.
  • Gestión de errores: La función Deserialize no devuelve ningún código de error. Si se produce un error, la variable ErrorOccurred se establece en True.
Clasificación Lógica de negocio / UI: Código neutro
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 10
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 02/02/2024

Señalar un error o enviar una sugerencia | Ayuda local