PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Deserialización
  • Velocidad
  • Límites
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Deserializa una memoria intermedia o una cadena de caracteres que contiene los datos de una clase, estructura, array (incluido un array asociativo), cola, pila, lista o Variable avanzado (gglCalendar por ejemplo), así como sus subelementos.
Versiones 15 y posteriores
Android Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
Android Esta función ahora está disponible para aplicaciones Android.
Android Esta función ahora está disponible para aplicaciones Android.
Versiones 17 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Nueva funcionalidad versión 18
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Versiones 21 y posteriores
Apple Watch Esta función ahora está disponible en modo Apple Watch.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Apple Watch Esta función ahora está disponible en modo Apple Watch.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Apple Watch Esta función ahora está disponible en modo Apple Watch.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
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>: Type of variable
Estructura, clase, array, cola, lista o pila Variable.
  • Para una estructura o una clase, este Variable debe asignarse.
  • 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 este Variable .
<Buffer>: Ansi character string or buffer
Variable que contiene los datos serializados. Se debe especificar un nombre de Variable.
<Parameters>: Integer constant
Tipo de deserialización (debe corresponder al tipo elegido para la serialización):
psdBinaryDeserialización binaria.
AndroidWidget Android La deserialización binaria no está disponible.
Versiones 17 y posteriores
psdBinaryFormat16
Nueva funcionalidad versión 17
psdBinaryFormat16
psdBinaryFormat16
Deserialización binaria en 16 formatos compatibles.
Este formato debe utilizarse si una aplicación de la versión 17 debe proporcionar datos a una aplicación de la versión 16..
Este formato no debe utilizarse en modo Unicode.
AndroidWidget Android La deserialización binaria no está disponible.
Versiones 19 y posteriores
psdJSON
Nueva funcionalidad versión 19
psdJSON
psdJSON
Deserialización en formato JSON.
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..
Versiones 20 y posteriores
psdXMLAggregated
Nueva funcionalidad versión 20
psdXMLAggregated
psdXMLAggregated
Deserialización XML con agregación directa de subobjetos.
Observación: La serialización en modo psdXMLAggregated permite generar fácilmente un archivo XML en formato estándar, utilizado para realizar intercambios con otros sistemas. La deserialización en modo psdXMLAggregated está disponible, sin embargo los elementos WLanguage (variantes, arrays, clases derivadas, ...) serán diferentes de los de origen.
AndroidWidget Android Este modo de deserialización no está disponible.
Observaciones

Deserialización

La deserialización de una array, una cola o una pila elimina el contenido del elemento.
Si se encuentran miembros adicionales en la estructura o en la clase:
  • si una estructura o una clase se deserializa: los miembros adicionales mantienen el valor que tenían antes de la deserialización.
  • si se deserializa un array de estructura o clase: los miembros adicionales toman el valor de Default del tipo de miembro.
Si se encuentran barras adicionales en el búfer serializado, se ignoran durante la deserialización.
Para deserializar una array dinámica no tipada, esta array debe ser asignada de antemano.
Para deserializar una clase o una estructura que contiene una array dinámica no tipada, esta array debe ser asignada de antemano.
La deserialización XML requiere la biblioteca wdxxxxxxml.dll o wpxxxxxxml.dll.
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.
AndroidWidget Android 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.

Límites

  • La arrays fija y la arrays asociativa de las estructuras locales no pueden ser deserializadas.
  • Los miembros globales de las clases no están serializados/deserializados.
  • La serialización/deserialización XML de un 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 serializar/deserializar una array de clase o estructura si esta clase o estructura contiene una array dinámica sin la clase. En esta clase o en esta estructura se debe utilizar una array dinámica con una clase definida.
  • Para serializar/deserializar una clase, debe tener un constructor sin parámetro obligatorio.
  • AndroidWidget Android No puedes serializar/deserializar las variables Queue, Stack o List.
  • Sólo la serialización de JSON está disponible para las variables de Record. No es posible la deserialización.
  • Gestión de los errores: La función Deserializar no devuelve ningún código de error. La variable ErrorOccurred se establece en True si se produce un error.
Componente : wd250vm.dll
Versión mínima requerida
  • Versión 10
Esta página también está disponible para…
Comentarios
Exemplo Deserialise - Json
Aula 1050 - WinDev - Json 001/... - Deserialise

// Nessa aula vou mostrar como retirar campos do Json

SAI_TextoJson=[
{"cep":"93410130","tipoDeLogradouro":"Rua","logradouro":"Paraiba","bairro":"Patria Nova","cidade":"Novo Hamburgo","estado":"RS"}
]


_cep_ is Structure
cep is string
tipoDeLogradouro is string
logradouro is string
bairro is string
cidade is string
estado is string
END
Estrutura_json is _cep_

Deserialize(Estrutura_json, SAI_TextoJson, psdJSON)

EDT_rua=Estrutura_json.logradouro
EDT_bairro=Estrutura_json.bairro
EDT_Cidade=Estrutura_json.cidade
EDT_Estado=Estrutura_json.estado
EDT_TipodeLogradouro=Estrutura_json.tipoDeLogradouro

//Blog com Video e Exemplo

http://windevdesenvolvimento.blogspot.com.br/2017/01/aula-1050-windev-json-001-deserialise.html

https://www.youtube.com/watch?v=-YGvpvKDgB8

http://forum.pcsoft.fr/pt-BR/pcsoft.br.windev/2089-aula-1050-windev-json-001-deserialise/read.awp
De matos
28 01 2017