Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20.6
Presentación de comandos JSON

Presentación de comandos JSON  


 

 

Los comandos JSON permiten generar y analizar los objetos de lenguaje de formato JSON. Más particularmente, el formato JSON hace que sea posible el acceso a las bases 4D (datos y estructura) utilizando un navegador web.

El soporte de objetos estructurados es una de las grandes novedades del lenguaje de 4D v14, destinado a facilitar el intercambio de datos estructurados. Gracias a los comandos del tema "JSON", 4D pueden trabajar directamente con objetos JSON. Sin embargo, 4D también puede trabajar con objetos "nativos" (cuya estructura se inspira en JSON), lo que permite el intercambio con todos los tipos de lenguaje. Para más información, consulte el capítulo Objetos (Lenguaje).

"JSON o JavaScript Object Notation es un formato de datos basado en texto, genérico, derivado de la notación de los objetos del lenguaje ECMAScript." (fuente: Wikipedia). JSON es independiente de cualquier otro lenguaje, pero utiliza las convenciones que son familiares para los programadores que utilizan C++ o JavaScript, Perl, etc. Es un formato que es particularmente adecuado para el intercambio de datos.

Esta sección resume los principios de notación implementados en JSON. Para una descripción completa de este formato, consulte el siguiente sitio: www.json.org/index.html.

La sintaxis JSON está basada en los siguientes principios:

  • los datos consisten en pares de nombre/valor,
  • los datos están separados por comas,
  • los objetos están definidos por corchetes {},
  • los arrays están definidos por corchetes [ ].

Los datos JSON se expresan en forma de pares nombre/valor (o llave/valor). Un par nombre/valor contiene un nombre de campo (entre comillas), luego dos puntos, seguido de un valor. Por ejemplo:

"Nombre":"Juan" 

Para su información, este ejemplo equivale en JavaScript:
Nombre="Juan"

Tenga en cuenta que los nombres de propiedades son diacríticos y tienen en cuenta las mayúsculas y minúsculas. Si escribe "Nombre" en lugar de "nombre", obtiene un nuevo par nombre/valor.

Los siguientes tipos de valores son soportados en JSON:

TipoDescripciónComentarios
cadenaTodo carácter Unicode excepto " y \
Los valores, como los nombres de propiedades, están entre comillas ("), por ejemplo, "city":"París"
\ se utiliza para los caracteres de control:
\" = comillas
\\ = barra oblicua inversa
\/ =  barra
\b = tecla de retroceso
\f = formfeed
\n = retorno de línea
\r = retorno de carro
\t = tabulación
\u = cuatro cifras hexadécimales
númeroEntero o número de punto flotanteNúmero similar a C o a Java, excepto que los formatos octal y hexadecimal no se utilizan
objeto{ }
array[ ]
booleanotrue o false
nulonull

Los objetos JSON se definen con corchetes y pueden contener un número indefinido de pares nombre/valor, por ejemplo:

{ "firstName":"John" , "lastName":"Doe" }

Los objetos JSON se pueden almacenar y manipular en 4D por medio de variables objeto (C_OBJECT) y campos.

Los arrays JSON se definen con corchetes. Cada array puede contener un número indefinido de objetos:

{
    "employees": [
        { "nombre":"Juan" , "apellido":"Pérez" },
        { "nombre":"Ana" , "apellido":"Gómez" },
        { "nombre":"Pedro" , "apellido":"Gónzalez" }
    ]
}

Los arrays JSON se pueden almacenar y manipular en 4D por medio de variables de tipo Colección (C_COLLECTION).

4D soporta y resuelve punteros JSON a través del comando JSON Resolve pointers. Un puntero JSON es una cadena que se puede utilizar para acceder a un campo o un valor de llave en particular en todo el documento JSON. Por convención, un URI que contiene un puntero JSON se puede encontrar en una propiedad objeto JSON que debe llamarse "$ ref".

{
   "$ref":<path>#<json_pointer>
}

Los punteros JSON se resuelven llamando el comando JSON Resolve pointers o automáticamente cuando se usa Formularios dinámicos.

Para más información, consulte la descripción del comando JSON Resolve pointers.

Por defecto, cuando se convierten datos 4D desde JSON, se tiene en cuenta la zona horaria de la máquina en la que la conversión se lleva a cabo (de conformidad con JavaScript). Por ejemplo, en Francia (GMT+2), la conversión de !23/08/2013! da "2013-08-22T22:00:00Z" y viceversa.

Puede cambiar este funcionamiento y no tener en cuenta la zona horaria, durante la implementación de los procedimientos de exportación, por ejemplo, utilizando el comando SET DATABASE PARAMETER (selector Dates inside objects). Note que este selector también puede influenciar la forma en que las fechas se almacenan en objetos.

Nota: a partir de 4D v16 R6, las cadenas de fecha JSON en formato "AAAA-MM-DD" también pueden ser compatibles. Para más información, consulte la opción "Usar tipo de fecha en lugar de formato de fecha ISO en objetos" en Página Compatibilidad.

Para más información sobre cómo convertir fechas 4D/JSON, consulteo .



Ver también 

Objetos (Lenguaje)

 
PROPIEDADES 

Producto: 4D
Tema: JSON

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Modificado: 4D v16 R5

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v20)
Manual de lenguaje 4D ( 4D v20.1)
Manual de lenguaje 4D ( 4D v20.2)
Manual de lenguaje 4D ( 4D v20.3)
Manual de lenguaje 4D ( 4D v20.4)
Manual de lenguaje 4D ( 4D v20.5)
Manual de lenguaje 4D ( 4D v20.6)