PDF de programación - JSON en JavaScript

Imágen de pdf JSON en JavaScript

JSON en JavaScriptgráfica de visualizaciones

Publicado el 12 de Octubre del 2018
5.789 visualizaciones desde el 12 de Octubre del 2018
189,8 KB
19 paginas
Creado hace 6a (11/04/2018)
JSON en JavaScript

Escuela Técnica Superior de Ingeniería de Telecomunicación

Universidad Rey Juan Carlos

gsyc-profes (arroba) gsyc.urjc.es

Abril de 2018

GSyC - 2018

JSON

1

c2018 GSyC
Algunos derechos reservados.
Este trabajo se distribuye bajo la licencia
Creative Commons Attribution Share-Alike 4.0

GSyC - 2018

JSON

2

JSON

JSON

Es un formato ligero para intercambiar datos, independiente del
lenguaje de programación y de la plataforma

Estándar abierto, RFC 4627, año 2006

Originalmente se consideraba subconjunto del lenguaje
JavaScript y se denominaba JavaScript Object Notation,
aunque ya no es parte de JavaScript

Diseñado como alternativa a XML, más ligero. Actualmente
es más popular que XML

Carece de algunas características de XML, por ejemplo
gramáticas o diferencia entre texto y metadato

GSyC - 2018

JSON

3

Value

JSON

Fuente:json.org

Un valor JSON puede ser un número, una cadena, un array o
un objeto, además de las constantes true, false y null
Igual que JavaScript. Excepto que undefined no es un valor
JSON

GSyC - 2018

JSON

4

Number

JSON

Los números son como las constantes numéricas de cualquier
lenguaje de programación moderno

Fuente:json.org

GSyC - 2018

JSON

5

String

JSON

Fuente:json.org

Las cadenas son como las de cualquier lenguaje de
programación moderno
El delimitador es la comilla doble

JavaScript admite la comilla doble y la simple, aunque la más
habitual es la simple

GSyC - 2018

JSON

6

Array

JSON

Fuente:json.org

Un array es una secuencia de valores entre corchetes,
separados por comas

Igual que JavaScript

GSyC - 2018

JSON

7

Objetos

JSON

Fuente:json.org

Un objeto es una secuencia de pares clave:valor, separados por
comas

Las claves son cadenas

Igual que JavaScript

GSyC - 2018

JSON

8

Ejemplos correctos

JSON

"hola, mundo"

4243.12

-947e-5

null

[1,2,3,4]

GSyC - 2018

JSON

9

[1, "azul", [1,2,3]]

JSON

[

]

1,
"azul",
[

1,
2,
3

]

["as" ,

"dos", "tres"]

["sota", "caballo", "rey"]

[

]

"sota",
"caballo",
"rey"

GSyC - 2018

JSON

10

JSON

{ "nombre":"Juan", "apellido":"Pérez"}

{ "v1":true, "v2":null, "v3":false}

{ "nombre": "Juan", "notas":[5.5, 7.2, 6.1]}

{

}

"nombre": "Juan",
"notas": [

5.5,
7.2,
6.1

]

GSyC - 2018

JSON

11

Ejemplos incorrectos

JSON

True

’hola, mundo’

{"hola,mundo"}

{1:"uno", 2:"dos"}

GSyC - 2018

JSON

12

Same-origin policy

JSONP

Same-origin policy es una norma que aparece en Netscape 2 (año
1995), que se ha convertido en un estándar. Consiste en que el
código JavaScript solo puede acceder a datos que provengan del
mismo origen desde el que se ha cargado el script

Se entiende por origen el mismo protocolo, máquina y puerto

Ejemplo

El usuario accede a una página web en molamazo.com,
Esta página web puede tener código JavaScript que acceda a
datos que estén en molamazo.com, pero solamente en este
sitio
No puede acceder a datos en bancofuenla.es

De lo contrario, una vez que el usuario se autentica en
bancofuenla con una página de bancofuenla, un script
malicioso en molamazo podría acceder a información sensible
en bancofuenla

GSyC - 2018

JSON

13

JSOP

JSONP

JSONP (JSON with padding, JSON con relleno) es una técnica
que permite que una página web obtenga datos desde un sitio web
distinto al suyo, sin vulnerar la same-origin policy

Es un protocolo del año 2005, soluciona el problema pero no
es especialmente elegante. También tiene algunos problemas
de seguridad potenciales

Una alternativa más avanzada pero menos extendida es
CORS, Cross-origin resource sharing

JSONP requiere de la colaboración del servidor. Es necesario que
un servidor ofrezca datos no solo en JSON, también en JSONP

GSyC - 2018

JSON

14

JSONP

JSONP se basa en que la same-origin policy se aplica solo a datos,
no a scripts

Ejemplo: un script descargado desde molamazo.com, no puede
descargar datos desde bancofuenla.es, pero sí puede descargar
otro script

Se entiende que esto no es especialmente peligroso.
Bancofuenla podría enviar una contraseña a una página web,
como un dato, esperando que la lea el usuario.
Pero en un script nunca debería haber información sensible

GSyC - 2018

JSON

15

JSONP

Ejemplo de uso de JSOP

Enviar 3 no está permitido, es un dato.
Pero la cadena "f(3)" no es un dato. Es un script. Se puede
enviar.

Si bancofuenla accede a enviar "f(3)" como dato JSON, sabe
que esta información podría ser usada por un script de
cualquier otro sitio, p.e. molamazo. Por tanto, nunca
enviará de este modo información sensible
Un problema distinto, que JSONP no contempla, es que sea
bancofuenla quien aproveche esto para enviar código dañino

GSyC - 2018

JSON

16

JSONP

En JSONP, el cliente solicita un dato a un sitio web ( en nuestro
ejemplo, bancofuenla), y también le indica el nombre de la función
en la que se envuelve el dato.

Esto se hace con un parámetro que suele denominarse
callback
Una petición podría ser

bancofuenla.es/divisas.html?par=USDEUR&fecha=hoy&callback=procesaDivisas

A la que el servidor podría responder
procesaDivisas(0.865)
procesaDivisas() será una función en el script cliente, que
tratará el dato (0.865)

GSyC - 2018

JSON

17

Funciones para procesar JSON

Conversión de objeto en cadena JSON

En JavaScript, para convertir un objeto en una cadena JSON
usamos la built-in function JSON.stringify

’use strict’
let lista=[ "sota", "caballo", "rey" ];
console.log(typeof(lista),lista);
// object ["sota","caballo","rey"]

let cadena=JSON.stringify(lista);
console.log(typeof(cadena),cadena);
// string ["sota","caballo","rey"]

GSyC - 2018

JSON

18

Funciones para procesar JSON

Conversión de cadena JSON en objeto

Para convertir una cadena de texto con un JSON en un objeto
JavaScript, disponemos de la built-in function JSON.parse

’use strict’
let cadena=’{ "nombre":"redes", "curso":1, "horario":["L1500", "X1700"] }’
console.log(typeof(cadena),cadena);

// string { "nombre":"redes", "curso":1, "horario":["L1500", "X1700"] }

let objeto=JSON.parse(cadena);
console.log(typeof(objeto),objeto);
/*
object { nombre: ’redes’,

curso: 1,
horario: [ ’L1500’, ’X1700’ ] }

*/

Si la cadena no cumple el formato JSON, se genera una excepción
SyntaxError

GSyC - 2018

JSON

19
  • Links de descarga
http://lwp-l.com/pdf13852

Comentarios de: JSON en JavaScript (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad