How golang generates JSON and parses JSON

藏色散人
Release: 2020-11-10 14:43:51
forward
3757 people have browsed it

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

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)
    }
}
Copy after login

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))
}
Copy after login

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!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template