Formato de intercambio de datos Web-Json

Prólogo

Learning WEB no puede evitar la transmisión de datos, y para la transmisión de datos entre el navegador y el servidor, debe haber un formato unificado. El formato de texto principal es Json

Descripción general de Json

JSON (JavaScript Object Notation) es un formato de texto utilizado para el intercambio de datos.
Similar al XML, es solo un formato de datos que se puede utilizar en cualquier lenguaje de programación.

  1. Json es un almacenamiento de valor clave, la clave admite String, número, el valor admite la mayoría de los tipos
  2. Json en sí es una cadena, pero hay un formato específico, es decir, una cadena de todos los símbolos en este formato, llamada Json, y todos los idiomas admiten cadena, es decir, Json se puede usar con cualquier lenguaje de programación
  3. Json se usa para el intercambio de datos y es un formato de intercambio de datos ligero (entonces XML es un formato de datos pesado)
  4. Origen Json y JavaScript, la sintaxis JSON es un subconjunto de la sintaxis javaScript

Sintaxis Json

En primer lugar, sabemos que la definición de Json es un formato de texto
para el intercambio de datos, y el intercambio de datos debe considerar la cantidad de datos y el tipo de datos
intercambiados, es decir, los datos intercambiados deben ser colecciones de matrices y objetos

Para describir un objeto en JavaScript, use corchetes {}, describa una matriz con corchetes []

La sintaxis de Json es un subconjunto de JavaScript, por lo que naturalmente

Describa un objeto msg:

    var msg =  {
   	 	"name" : "zhangsan",
    	"id" : 123, 
    	"country" : "China"
    }

Describa una matriz de mensajes:

    var msg = [
        {"name" : "zhangsan", "id" : 123, "country" : "China"},
        {"name" : "lisi","id" : 1234,"country" : "US"},
    ]

El formato es: clave: valor La forma de pares clave-valor

Json siempre es solo un formato de datos, dicho objeto Json es un objeto JavaScript que se ajusta al formato Json

Asuntos que requieren atención

Tipos de datos compatibles con Json:

  • Número: número (entero o coma flotante)
  • Cadena: Cadena (entre comillas dobles), debe ser comillas dobles en inglés (""), algunos idiomas débiles pueden admitir comillas simples
  • Booleano: valor lógico (verdadero o falso)
  • Matriz: Matriz (entre corchetes), generalmente en la posición Valor, […]
  • Objeto: Objeto (entre llaves), generalmente en la posición Valor, {…}
  • nulo: nulo

En los datos de Json, no puede haber comillas, comas, operadores especiales, /、*、-、+、>>etc.

Las reglas gramaticales de Json son un subconjunto de JavaScript

Inserte la descripción de la imagen aquí

Json obtiene el valor del elemento

La sintaxis Json es un subconjunto de JavaScript, simplemente puede obtener el elemento Json a través de la sintaxis JS

<script>
    var data = {
        "name" : "zhangsan",
        "country" : "China"
    }

    alert(data.name+" - "+data.country)
</script>

Inserte la descripción de la imagen aquí

Pero como se mencionó anteriormente, el valor también puede ser datos de tipo de Número, y los datos de tipo de Número no pueden tomarse así,
sino datos [1] o datos ["1"]

<script>
    var data = {
        "name" : "zhangsan",
        "country" : "China",
        "1" : "法外狂徒"
    }
    alert(data["1"])
</script>

Convertir

método eval

La función eval () usa un compilador de JavaScript, que puede analizar texto JSON (cadenas de JavaScript) y luego generar objetos de JavaScript

Pero use corchetes para encerrar la cadena:

<script>
    var data = '{"name":"zhangsan","country":"China"}';
    var jsonData = eval("("+data+")");
    alert(jsonData.name);
</script>

Inserte la descripción de la imagen aquí

método de análisis

JSON.parse () es un método de conversión JSON de uso común en Javascript, que puede convertir cadenas que se ajustan a la sintaxis Json en objetos Json

<script>
    var data = '{"name":"zhangsan"}';
    alert(data.name);
    var jsonData=JSON.parse(data);
    alert(jsonData.name);
</script>

El primer cuadro emergente no está definido, ya que se trata de una cadena, no puede obtener datos Json a través de JS
Inserte la descripción de la imagen aquí

parse es un objeto Json después de la conversión

Inserte la descripción de la imagen aquí

método stringify

Por supuesto, también hay un método stringify para convertir objetos Json en cadenas con reglas Json simbólicas.


<script>
    var data = {"name":"zhangsan"};
    var jsonData=JSON.stringify(data)
    alert(jsonData.name)
    alert(jsonData);
</script>

El primer cuadro emergente está subrayado, lo que indica que el convertido no es un objeto Json
Inserte la descripción de la imagen aquí

Esta es una cuerda

Inserte la descripción de la imagen aquí

El método stringify también puede convertir contenido de cadena JsonJSON.stringify(value[, replacer[, space]])

Puede haber 3 parámetros,
solo un valor de parámetro, es decir, el objeto Json a convertir

var jsonData=JSON.stringify(data)

Dos parámetros: el parámetro de reemplazo puede ser function o Array

Si el parámetro de reemplazo es una función de
función, puede tomar dos parámetros: clave y valor, y el valor de retorno

  • Si se devuelve un número, la cadena convertida se agrega a la cadena JSON
  • Si se devuelve una cadena, la cadena se agrega al JSON como un valor de atributo
  • Si se devuelve un booleano, se agrega "verdadero" o "falso" a la cadena JSON como el valor del atributo
  • Si devuelve indefinido, el valor de la propiedad no se generará en la cadena JSON
    Inserte la descripción de la imagen aquí
<script>
    var data = {"name":"zhangsan","country":"China"};
    var jsonData=JSON.stringify(data,function (key, value) {
        if (key == "name"){
            value = "法外狂徒"
        }
        return value;
    })
    alert(jsonData)
</script>

Inserte la descripción de la imagen aquí

El método stringify juzgará cada par clave-valor de nuestro Json

Si el sustituto de parámetros es una matriz
, la clave del conjunto de resultados solo genera resultados y el atributo de fallo se filtra.

<script>
    var data = {"name":"zhangsan","country":"China"};
    var jsonData=JSON.stringify(data,["name"]);
    alert(jsonData);
</script>

Inserte la descripción de la imagen aquí

El tercer espacio del parámetro es para embellecer la salida de Json,
pero para usar el tercer parámetro debe traer el segundo parámetro

  1. el espacio es un número que indica el intervalo entre cada elemento
<script>
    var data = {"name":"zhangsan","country":"China"};
    var jsonData=JSON.stringify(data,null,2);
    alert(jsonData);
</script>

Inserte la descripción de la imagen aquí

  1. space es la salida de embellecimiento de espacio personalizada de 'tab', usando "\ t"
var jsonData=JSON.stringify(data,null,"\t");

Inserte la descripción de la imagen aquí

  1. el espacio es una cadena, agregue una cadena fija
var jsonData=JSON.stringify(data,null,"hello");

Inserte la descripción de la imagen aquí

Formato de intercambio de datos ligero

¿Por qué Json es un formato de intercambio de datos ligero? ¿Por qué XML es un formato de intercambio de datos pesado?

El formato de datos Json es relativamente simple, fácil de leer y escribir, el formato está comprimido y el ancho de banda ocupado es pequeño, a diferencia de las diversas etiquetas que existen en el formato XML, el archivo es enorme, el formato del archivo es complejo y la transmisión ocupa el ancho de banda

Use un ejemplo para mostrar:
un objeto de libro: debe tener un nombre de libro, nombre de autor, objeto de precio, precio de
autor, objeto debe describir el nombre de autor authorName, logro
Json dijo:

    var book = {
        "name" : "时间简史",
        "author" : {
            "authorName" : "霍金",
            "achievement" : "physicist"
        },
        "price" : 100
    }

Y en XML:

<book>
    <name>时间简史</name>
    <author>
        <authorName>霍金</authorName>
        <achievement>physicist</achievement>
    </author>
    <price>100</price>
</book>

Varias etiquetas
no son solo esto, hay restricciones en XML. Si el precio es un número y no está vacío, debe escribir un archivo de restricción, y lleva tiempo analizar el archivo XML (dom4j, Xpath, Jsoup, etc.) Si los diferentes navegadores tienen diferentes métodos de análisis
y si Json es una cadena de cadenas, que es demasiado simple de analizar, y no hay varias especificaciones de etiquetas

¿
Realmente puedes entender XML sobre algunos conceptos básicos de XML? -¿Lo básico de XML
realmente comprende XML? Método de análisis -XML

Entonces, Json se convirtió gradualmente en el formato principal de intercambio de datos

Porque, después de todo, estoy involucrado en el backend de Java, y la revisión de Json es más o menos eso. Json todavía tiene mucho que investigar.

Publicado 121 artículos originales · ganó 31 · vistas 7869

Supongo que te gusta

Origin blog.csdn.net/key_768/article/details/105385638
Recomendado
Clasificación