Heim > Backend-Entwicklung > Golang > Wie Golang JSON generiert und JSON analysiert

Wie Golang JSON generiert und JSON analysiert

藏色散人
Freigeben: 2020-11-10 14:43:51
nach vorne
3899 Leute haben es durchsucht

Die folgende Tutorial-Kolumne von golang stellt Ihnen golang vor, um JSON zu generieren und JSON zu analysieren. Ich hoffe, es wird Freunden in Not hilfreich sein! 1. JSON-Parsing in die Struktur Die JSON-Syntax ist eine Teilmenge der JavaScript-Objektnotationssyntax.
Daten liegen in Name/Wert-Paaren vor

Daten werden durch Kommas getrennt.

Geschweifte Klammern speichern Objekte. Eckige Klammern speichern Arrays. Wie Golang JSON generiert und JSON analysiert 1.JSON-Name/Wert-Paar Kann sein:

Zahl (Ganzzahl oder Gleitkommazahl) Zeichenfolge (in doppelten Anführungszeichen)

Logischer Wert (wahr oder falsch)

Array (in eckigen Klammern)

Objekt (in geschweiften Klammern)

null



JSON-Daten
JSON-Zahlen können Ganzzahlen oder Gleitkommatypen sein

{ "age":30 }


JSON-Objekte

JSON-Objekte werden in geschweiften Klammern ({}) geschrieben:
Das Objekt kann mehrere Name/Wert-Paare enthalten :


{
    "name": "runoob",
    "alexa": 10000,
    "sites": {
        "site1": "www.runoob.com",
        "site2": "m.runoob.com",
        "site3": "c.runoob.com"
    }
}
Nach dem Login kopieren


JSON-Array
JSON-Arrays werden in eckigen Klammern geschrieben:
Arrays können mehrere Objekte enthalten:

{
    "sites": [
        {
            "name": "菜鸟教程",
            "url": "www.runoob.com"
        },
        {
            "name": "google",
            "url": "www.google.com"
        },
        {
            "name": "微博",
            "url": "www.weibo.com"
        }
    ]
}
Nach dem Login kopieren
  1. JSON Boolean
{ "flag":true }

  1. json nullon { „runoob“: null}

  2. json-Parsing zur Struktur
//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)
}
Nach dem Login kopieren
E
  1. 2, JSON zur Zuordnung

    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)
        }
    }
    Nach dem Login kopieren
  2. Ausgabeergebnis:
  1. m: Map [ip: 127.0.0 .0.1 Name:SKY]
  2. Name : SKY
IP: 127.0.0.1

3. Generieren Sie JSON
  1. 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))
    }
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWie Golang JSON generiert und JSON analysiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage