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

Wie Golang JSON generiert und JSON analysiert

藏色散人
藏色散人nach vorne
2020-11-10 14:43:513791Durchsuche

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"
    }
}


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"
        }
    ]
}
  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)
}
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)
        }
    }
  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))
    }

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen