Home >Backend Development >Golang >How golang generates JSON and parses JSON

How golang generates JSON and parses JSON

藏色散人
藏色散人forward
2020-11-10 14:43:513789browse

The following is introduced to you by golang##tutorial columngolang generates JSON And parsing JSON, I hope it will be helpful to friends in need!

How golang generates JSON and parses JSON

1. JSON parsing into structure

Introducing this part Before, let’s briefly introduce Json syntax

JSON syntax is a subset of JavaScript syntax. JSON syntax is a subset of JavaScript object notation syntax.

Data is in name/value pairs

Data is separated by commas
Curly brackets save objects
Square brackets save arrays
1.JSON name/value pairs

"name" : "value"

2.JSON value

can be:

Number (integer or floating point number)

String (in double quotes)
logical value (true or false)
array (in square brackets)
object (in curly brackets)
null

    JSON data
  1. JSON numbers can be integers or floating point types
{ "age":30 }

    JSON object
  1. JSON objects are written within braces ({}):
    Objects can contain multiple name/value pairs:
  2. {
        "name": "runoob",
        "alexa": 10000,
        "sites": {
            "site1": "www.runoob.com",
            "site2": "m.runoob.com",
            "site3": "c.runoob.com"
        }
    }
    JSON array
  1. JSON array in Write in brackets:
    The array can contain multiple objects:
  2. {
        "sites": [
            {
                "name": "菜鸟教程",
                "url": "www.runoob.com"
            },
            {
                "name": "google",
                "url": "www.google.com"
            },
            {
                "name": "微博",
                "url": "www.weibo.com"
            }
        ]
    }
    JSON Boolean value
{ "flag":true }

    JSON null
{ "runoob":null }

Json is parsed into a 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)
}

2. Convert JSON to 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)
    }
}

Output result:

m: map[IP:127.0.0.1 name:SKY]

name : SKY
IP : 127.0.0.1

3. Generate 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))
}

The above is the detailed content of How golang generates JSON and parses JSON. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete