Skip to content

Commit

Permalink
se modifico hasta la linea 86 del archivo 7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
jackgris committed Apr 2, 2015
1 parent c4db44e commit 570aef3
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
1 change: 1 addition & 0 deletions eBook/.#07.2.md
46 changes: 23 additions & 23 deletions eBook/07.2.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
# 7.2 JSON

JSON (JavaScript Object Notation) es un lenguaje de intercambio de datos ligero que se basa en la descripción de texto, sus ventajas, incluyendo auto-descriptivo, fácil de entender, etc A pesar de que es un subconjunto de JavaScript, JSON utiliza un formato diferente de texto para convertirse en una lengua independiente, y tiene algunas similitudes con lenguas C-familiares.
JSON (JavaScript Object Notation) es un lenguaje de intercambio de datos ligero que se basado en texto descriptivo, entre sus ventajas se incluyen ser auto-descriptivo, fácil de comprender, etc. A pesar de ser un subconjunto de JavaScript, JSON utiliza un formato de texto diferente para convertirse en lengua independiente, y tiene algunas similitudes con lenguajes de la familia C.

La mayor diferencia entre JSON y XML es que XML es un lenguaje de marca, pero no es JSON. JSON es pequeño y más rápido que el XML, por lo tanto, es mucho más fácil y más rápido para analizar en los navegadores, lo cual es una razón importante de que muchas plataformas abiertas eligen utilizar JSON como su idioma de la interfaz de intercambio de datos.
La mayor diferencia entre JSON y XML es que XML es un lenguaje de marca, pero JSON no lo es. JSON es más pequeño y más rápido que XML, por lo tanto, es mucho más fácil y más rápido para analizar en los navegadores, lo cual es una razón importante de que muchas plataformas abiertas elijan utilizar JSON como su lenguaje de interfaz para el intercambio de datos.

Dado que JSON es cada vez más importante en el desarrollo web, vamos a echar un vistazo en el nivel de apoyo JSON en Go. En realidad, la biblioteca estándar tiene muy buen soporte para la codificación y decodificación JSON.
Dado que JSON es cada vez más importante en el desarrollo web, vamos a echar un vistazo al nivel de soporte para JSON en Go. Actualmente, la librería estándar tiene un muy buen soporte para la codificación y decodificación de JSON.

Aquí se utiliza JSON para representar el ejemplo de la sección anterior:
Aquí utilizamos JSON para representar el ejemplo de la sección anterior:


{"servers":[{"serverName":"Shanghai_VPN","serverIP":"127.0.0.1"},{"serverName":"Beijing_VPN","serverIP":"127.0.0.2"}]}

El resto de esta sección utilizará estos datos JSON presentarles cómo operar JSON en Go.
El resto de esta sección utilizará estos datos JSON para presentarles cómo manejar JSON en Go.

## Parse JSON

### Pasar a struct
### Parse a un struct

Supongamos que tenemos JSON en el ejemplo anterior, ¿cómo podemos analizar estos datos y asignar a struct en Go? Go tiene las siguientes funciones para hacer esto:
Supongamos que tenemos el JSON del ejemplo anterior, ¿cómo podemos analizar estos datos y asignarlos a un struct en Go? Go tiene las siguientes funciones para hacer esto:

```go
func Unmarshal(data []byte, v interface{}) error
```

Podemos utilizar esta función para lograr nuestro objetivo, aquí es un ejemplo completo:
Podemos utilizar esta función para lograr nuestro objetivo, este es un ejemplo completo:

```go
package main

import (
Expand All @@ -45,21 +48,17 @@ Podemos utilizar esta función para lograr nuestro objetivo, aquí es un ejemplo
json.Unmarshal([]byte(str), &s)
fmt.Println(s)
}
```

En el ejemplo anterior, hemos definido una estructura correspondiente en GO para nuestra JSON, slice for array, nombre del campo para la clave en JSON, pero ¿cómo GO sabe qué datos JSON son de la estructura específica presentada? Supongamos que tenemos una clave llamada `Foo` en JSON, cómo encontrar campo correspondiente?
En el ejemplo anterior, hemos definido el struct correspondiente en GO para nuestra JSON, el slice para el array, el nombre del campo para la clave en JSON, pero ¿cómo sabe GO qué datos del JSON son para el campo espesífico del struct? Supongamos que tenemos una clave llamada `Foo` en el JSON, cómo encontramos el campo correspondiente?

En primer lugar, tratar de encontrar el campo exportado (con mayúscula) cuya etiqueta contiene Foo .
A continuación, tratar de encontrar el campo que se llama Foo .
Por último, trate de encontrar algo como FOO o FoO sin mayúsculas y minúsculas.
Usted puede notar que todos los campos que van a ser asignados deben ser exportados, y Go sólo asigna los campos que se pueden encontrar, al mismo tiempo, y hace caso omiso de todos los demás. Esto es bueno porque cuando recibe un dato JSON muy grande, pero sólo necesita algunos de ellos, se puede desechar fácilmente.
- Primero, intentamos encontrar el campo exportado (con mayúscula) cuyo nombre contenga `Foo`.
- A continuación, tratamos de encontrar el campo que se llama`Foo`.
- Por último, tratamos de encontrar algo como `FOO` o `FoO` sin mirar las mayúsculas o minúsculas.

- En primer lugar, tratar de encontrar el campo exportado (con mayúscula) cuya etiqueta contiene `Foo`.
- A continuación, tratar de encontrar el campo que se llama`Foo`.
- Por último, trate de encontrar algo como `FOO` or `FoO` sin mayúsculas y minúsculas.
Usted puede notar que todos los campos que van a ser asignados deben ser exportados, y Go sólo asigna los campos que se pueden encontrar, al mismo tiempo, y hace caso omiso de todos los demás. Esto es bueno porque cuando recibe un dato de un JSON muy grande, pero sólo necesita algunos de ellos, los puede descartar fácilmente.

Usted puede notar que todos los campos que van a ser asignados deben ser exportados, y Go sólo asigna los campos que se pueden encontrar, al mismo tiempo, y hace caso omiso de todos los demás. Esto es bueno porque cuando recibe un dato JSON muy grande, pero sólo necesita algunos de ellos, se puede desechar fácilmente.

### Pasar a interface
### Parse a un interface

Cuando sabemos qué tipo de JSON vamos a tener, se analizan la estructura JSON específica, pero que si no sabemos?

Expand Down Expand Up @@ -231,8 +230,9 @@ Funcion `Marshal` sólo devuelve los datos cuando se tiene éxito, así que aqu

En esta sección, le presentamos cómo descodificar y codificar datos JSON en Go, también uno de los proyectos de terceros llamado `simplejson` que es para analizar JSON formato desconocido. Estos son todos importantes en el desarrollo web.

## Links

- [Directory](preface.md)
- Previous section: [XML](07.1.md)
- Next section: [Regexp](07.3.md)
## Enlaces

- [Indice](preface.md)
- Sección anterior: [XML](07.1.md)
- Siguiente sección: [Regexp](07.3.md)

0 comments on commit 570aef3

Please sign in to comment.