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 / Funciones WLanguage / Funciones específicas de la Web / Funciones varias de WEBDEV
  • Presentación
  • JSON y WEBDEV
  • Obtención de información en formato JSON
  • Ejemplo de uso de la función JSONExecute
  • Ejemplo de uso de la función JSONExecuteExternal
  • Creación de páginas que devuelven datos de JSON
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
Presentación
JSON (notación de objetos JavaScript) es un formato ligero para el intercambio de datos.. Basado en JavaScript, JSON es un formato de texto independiente de cualquier otro idioma.
JSON se basa en dos estructuras:
  • un conjunto de parejas nombre/valor, interpretado en WLanguage por estructuras.
  • una lista de valores organizados, interpretados en WLangage por arrays.
JSON y WEBDEV
WEBDEV está acostumbrado a:
  • Información de get en formato JSON en un sitio WEBDEV.
  • crear páginas WEBDEV que devuelvan información en formato JSON. Tiene la posibilidad de crear un sitio que ofrezca servicios de JSON (un sitio para monitorizar paquetes, por ejemplo).
Obtención de información en formato JSON
A la información de get en formato JSON, WEBDEV le permite ejecutar una página que devuelve la información en formato JSON. Hay dos funciones de WLangage disponibles:
JSONExecuteLlama a una URL del servidor del mismo dominio que devuelve datos en formato JSON (JavaScript Object Notation).
JSONExecuteExternalLlama a una URL de un servidor externo que devuelve datos en formato JSON (JavaScript Object Notation).. Los datos se procesan en un Procedure específico.
Estas funciones son funciones del navegador. Los datos recibidos se procesan mediante un código de navegador.

Ejemplo de uso de la función JSONExecute

El siguiente código se utiliza para ejecutar una página de AWP con el fin de get la lista de contactos en formato JSON.
Los pasos son:
  1. Declarar un objeto dinámico. Este objeto dinámico contendrá el resultado en formato JSON.
    MyContacts is dynamic object
  2. Llamando a JSONExecute:
    MyContacts = JSONExécute(FolderWeb()+"FR/PAGE_Object.awp?id=12")
  3. Tratamiento de los datos de JSON: Esta Process se realiza en código de navegador.
    Veamos un ejemplo simple: los datos de JSON se devuelven en el siguiente formato:
    {id: 12,
    list: [
    {lastname: "smith", firstname: "john"},
    {lastname: "doe", firstname: "mary"},
    {lastname: "martin", firstname: "laura"}]
    }

    Usted puede por ejemplo:
    • recuperar el valor de un miembro del objeto dinámico. Por ejemplo:
      MyContacts:id
    • recuperar los diferentes elementos de una lista de valores. Por ejemplo:
      FOR i = 1 _TO_ Dimension(MyContacts:list) ListAdd(LIST_List_of_contacts, ...
      MyContacts:list[i]:lastname + "  " + ...
      MyContacts:list[i]:firstname)
      END

Ejemplo de uso de la función JSONExecuteExternal

El principio de utilización de JSONExecuteExternal es el mismo que el de JSONExecute.
En este caso, la página utilizada para recuperar los datos de JSON no se encuentra en el mismo dominio.. Las reglas de seguridad de Internet imponen utilizar una función de devolución de llamada a Process el resultado en forma asincrónica. Por lo tanto, JSONExecuteExternal permite especificar el nombre de la ejecución de Procedure para Process los datos de JSON.
Ejemplo: En este ejemplo, se llama a una Página WEBDEV Activa y los datos se procesan en la FunciónRespuesta Procedure:
JSONExecuteExternal("http://MySite/MySite_WEB/US/PAGE_Object.awp?id=12", ...
"JsonCallback", FunctionResponse)
Creación de páginas que devuelven datos de JSON
WEBDEV le ofrece la posibilidad de crear un sitio que proporciona servicios de JSON.
Las páginas utilizadas para get los datos de JSON deben devolver una cadena de caracteres de un formato específico. Estas páginas pueden ser páginas de AWP o páginas PHP.
Caso de una página llamada por JSONExecute: El siguiente código se utiliza para devolver un identificador y una lista de valores:
sObject is string = [ {id: 12,
list:  [
{lastname: "smith", firstname: "john"},
{lastname: "doe", firstname: "mary"},
{lastname: "martin", firstname: "laura"}]
}
]
// StringToUTF8 is used to manage the accented characters
StringDisplay(StringToUTF8(sObject))
Pantalla StringDisplay se utiliza para devolver la información de JSON. StringToUTF8 se utiliza para devolver una cadena en formato UTF8. Esta última función es obligatoria para get un formato válido.
Caso de una página llamada por JSONExecuteExternal: Además del código utilizado para gestionar el elemento JSON a devolver, el nombre del procedimiento que se utilizará para Process los datos deben ser especificados en los datos devueltos. El nombre de esta Procedure se indica en parámetro en la URL de la página.
El siguiente ejemplo se utiliza para gestionar la llamada con JSONExecute y JSONExecuteExternal. Para una llamada externa, debe comprobar la presencia de un parámetro específico que se encuentra en la URL. Este parámetro ha sido suministrado al usuario del servicio JSON.
sObject is string = [ {id: 12,
list:  [
{lastname: "smith", firstname: "john"},
{lastname: "doe", firstname: "mary"},
{lastname: "martin", firstname: "laura"}]
}
]
// Manage an external call.
// Checks the presence of a procedure name on the URL
IF PageParameter("JsonCallback") <> "" THEN
sObject = PageParameter("JsonCallback") + "("+ sObject + ");"
END
 
// StringToUTF8 is used to manage the accented characters
StringDisplay(StringToUTF8(sObject))
Para que los usuarios de los sitios WEBDEV puedan utilizar los servicios JSON, basta con informar a estos usuarios de los parámetros que deben especificar en la Address de la página para comenzar.
Observación: Consulte una documentación específica para obtener más detalles.
Versión mínima requerida
  • Versión 14
Comentarios
Navegar nos dados de um json
js is JSON
FOR i = 1 _TO_ js..Member..Count
js..Member[i]..Name
END
Boller
23 10 2023
Exemplo de leitura de arquivo json
gsPerguntasJson is ANSI string = fLoadText( fDataDir()+"/questoes.json" )
gsPerguntasJson = UTF8ToAnsi(gsPerguntasJson)

JsonStru is Structure
pergunta is ANSI string
resp_a is ANSI string
resp_b is ANSI string
resp_c is ANSI string
resp_d is ANSI string
resp_e is ANSI string
resp_f is ANSI string
resp_g is ANSI string
resposta is ANSI string
explicacao is ANSI string
END

gstDadosJson is array of JsonStru
Deserialize( gstDadosJson , gsPerguntasJson , psdJSON)
FOR EACH st_linha_json OF gstDadosJson
Info(st_linha_json.explicacao)
END
BOLLER
11 08 2017
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

Última modificación: 27/05/2022

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