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 un tampón o una cadena de caracteres que contiene los datos de una clase, estructura, array (incluyendo un array asociativo ), cola, la pila, lista o variable avanzada ( gglCalendario por ejemplo) así como sus sub-elementos.
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
Variable de estructura, clase, array cola, lista o pila.
  • Para una estructura o una clase, esta variable debe asignarse.
  • Para unaarray, una cola, una lista o una pila, esta variable se asigna automáticamente durante la deserialización.
La deserialización se realizará en esta 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):
psdBinarioDeserialización binaria.
AndroidWidget Android La deserialización binaria no está disponible.
Versiones 17 y posteriores
psdBinarioFormato16
Nueva funcionalidad versión 17
psdBinarioFormato16
psdBinarioFormato16
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.
AndroidWidget Android La deserialización en formato JSON no está disponible.
Versiones 20 y posteriores
AndroidWidget Android La serialización JSON ya está disponible.
Nueva funcionalidad versión 20
AndroidWidget Android La serialización JSON ya está disponible.
AndroidWidget Android La serialización JSON ya está disponible.
psdXMLDeserialización XML con referencia a objetos parciales.
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
psdXMGregado
Nueva funcionalidad versión 20
psdXMGregado
psdXMGregado
Deserialización XML con agregación directa de subobjetos.
señalar: La serialización en psdXMGregado le permite generar fácilmente un archivo XML en formato estándar, utilizado para realizar intercambios con otros sistemas.. La deserialización en psdXMGregado está disponible, sin embargo los elementos WLanguage (variantes, arrays, clases derivadas, ...) serán diferentes de los elementos fuente.
AndroidWidget Android Este modo de deserialización no está disponible.
Observaciones

Deserialización

La deserialización de una array fila o 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 una array de las estructuras o clases es deserializada: los miembros adicionales toman el valor por defecto del tipo de miembro.
Si se encuentran barras adicionales en el búfer serializado, se ignoran durante la deserialización.
Para deserializar una dinámica array no tipada, ésta array debe ser asignada de antemano.
Para deserializar una clase o una estructura que contiene una dinámica array no tipada, ésta array debe ser asignada de antemano.
La deserialización XML requiere la biblioteca wdxxxxxxml.dll o wpxxxxxxml.dll.
Una variable avanzada que fue serializada con una versión francesa del producto (y cuyos nombres y propiedades están en francés en el buffer de serialización) puede ser deserializada con 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 las clases,
  • estructuras,
  • array de estructuras.

Velocidad

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

Límites

  • Lo fijo arrays y lo asociativo arrays de las estructuras locales no puede ser deserializado.
  • Los miembros globales de las clases no están serializados/deserializados.
  • La serialización/deserialización XML de una array estructura 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 clase o estructura si esta clase o estructura contiene una dinámica array sin tipo. Se debe utilizar una dinámica array con un tipo definido en esta clase o en esta estructura.
  • Para serializar/deserializar una clase, debe tener un constructor sin parámetro obligatorio.
  • Versiones 20 y posteriores
    Límites en psdXMGregado modo: la serialización/deserialización de variables avanzadas provoca un error en tiempo de ejecución. Las propiedades de las variables avanzadas no se serializan.
    Nueva funcionalidad versión 20
    Límites en psdXMGregado modo: la serialización/deserialización de variables avanzadas provoca un error en tiempo de ejecución. Las propiedades de las variables avanzadas no se serializan.
    Límites en psdXMGregado modo: la serialización/deserialización de variables avanzadas provoca un error en tiempo de ejecución. Las propiedades de las variables avanzadas no se serializan.
  • AndroidWidget Android No puede serializar/deserializar las variables Queue, Stack o List.
  • Sólo la serialización JSON está disponible para las Registro variables. No es posible la deserialización.
  • Gestión de los errores: Deserializar returns no error code. La ErrorOcurrió variable 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