Maison > développement back-end > Golang > le corps du texte

Comment Golang génère JSON et analyse JSON

藏色散人
Libérer: 2020-11-10 14:43:51
avant
3752 Les gens l'ont consulté

Ce qui suit est une introduction à golangcolonne tutorielle golang génère JSON Et en analysant JSON, j'espère que cela sera utile aux amis dans le besoin !

Comment Golang génère JSON et analyse JSON

1 Analyse JSON en structure

Dans cette partie d'introduction Avant. , présentons brièvement la syntaxe Json

La syntaxe JSON est un sous-ensemble de la syntaxe JavaScript. La syntaxe JSON est un sous-ensemble de la syntaxe de notation d'objet JavaScript.

Les données sont dans des paires nom/valeur
Les données sont séparées par des virgules
Les accolades enregistrent les objets
Les crochets enregistrent les tableaux
1. Paires nom/valeur JSON

"nom" : "valeur"

La valeur 2.JSON
peut être :

Nombre (nombre entier ou à virgule flottante)
Chaîne (entre guillemets)
valeur logique (vrai ou faux)
tableau (entre crochets)
objet (entre accolades)
null

  1. Données JSON
    Les nombres JSON peuvent être des nombres entiers ou des types à virgule flottante

{ "age":30 }

  1. Objet JSON
    Les objets JSON sont écrits entre accolades ({}) :
    Les objets peuvent contenir plusieurs paires nom/valeur :
{
    "name": "runoob",
    "alexa": 10000,
    "sites": {
        "site1": "www.runoob.com",
        "site2": "m.runoob.com",
        "site3": "c.runoob.com"
    }
}
Copier après la connexion
  1. Tableau JSON
    Tableau JSON dans Écrit entre parenthèses :
    Le tableau peut contenir plusieurs objets :
{
    "sites": [
        {
            "name": "菜鸟教程",
            "url": "www.runoob.com"
        },
        {
            "name": "google",
            "url": "www.google.com"
        },
        {
            "name": "微博",
            "url": "www.weibo.com"
        }
    ]
}
Copier après la connexion
  1. Valeur booléenne JSON

{ "flag":true }

  1. JSON null

{ "runoob":null }

Json analysé en structure

//JSON解析到结构体
package main
import (
    "encoding/json"
    "fmt"
    "os"
)
type Server struct {
    ServerName string
    ServerIP   string
}
type Serverslice struct {
    Servers []Server
}
func main() {
    var s Serverslice
    str := `{"servers":
   [{"serverName":"Guangzhou_Base","serverIP":"127.0.0.1"},
   {"serverName":"Beijing_Base","serverIP":"127.0.0.2"}]}`
    err:=json.Unmarshal([]byte(str), &s)
    if err!=nil{
        fmt.Println(err)
    }
    fmt.Println(s)
    fmt.Println(s.Servers[0].ServerName)
}
Copier après la connexion

2 . Convertir JSON en map

package main
 
 
import (
    "fmt"
    "encoding/json"
)
 
func main() {
 
    b := []byte(`{"IP": "127.0.0.1", "name": "SKY"}`)
 
    m := make(map[string]string)
 
    err := json.Unmarshal(b, &m)
    if err != nil {
 
        fmt.Println("Umarshal failed:", err)
        return
    }
 
 
    fmt.Println("m:", m)
 
    for k,v :=range m {
        fmt.Println(k, ":", v)
    }
}
Copier après la connexion

Résultat de sortie :

m : map[IP:127.0.0.1 nom:SKY]
nom : SKY
IP. : 127.0.0.1

3. Générer du JSON

package main
import (
    "encoding/json"
    "fmt"
)
type Server struct {
    ServerName string `json:"serverName,string"`
    ServerIP   string `json:"serverIP,omitempty"`
}
type Serverslice struct {
    Servers []Server `json:"servers"`
}
func main() {
    var s Serverslice
    s.Servers = append(s.Servers, Server{ServerName: "Guangzhou_Base", ServerIP: "127.0.0.1"})
    s.Servers = append(s.Servers, Server{ServerName: "Beijing_Base", ServerIP: "127.0.02"})
    b, err := json.Marshal(s)
    if err != nil {
        fmt.Println("JSON ERR:", err)
    }
    fmt.Println(string(b))
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal