ホームページ >バックエンド開発 >Golang >golang が JSON を生成し、JSON を解析する方法

golang が JSON を生成し、JSON を解析する方法

藏色散人
藏色散人転載
2020-11-10 14:43:513831ブラウズ

以下は golang によって紹介されています##チュートリアル コラムgolang が生成するものJSON そして JSON を解析します。困っている友達のお役に立てれば幸いです。

golang が JSON を生成し、JSON を解析する方法

1. JSON を構造体に解析する

この部分の紹介前に、 Json 構文を簡単に紹介しましょう

JSON 構文は JavaScript 構文のサブセットです。 JSON 構文は、JavaScript オブジェクト表記構文のサブセットです。

データは名前と値のペアで構成されます

データはカンマで区切られます
中括弧はオブジェクトを保存します
角括弧は配列を保存します
1.JSON の名前と値のペア

"名前" : "値"

2.JSON 値

は次のとおりです:

数値 (整数または浮動小数点数)

文字列 (二重引用符内)
論理値 (true または false)
配列 (角括弧内)
オブジェクト (中括弧内)
null

## JSON データ
    JSON 数値は整数または浮動小数点型になります

{ "age":30 }

JSON オブジェクト
    JSON オブジェクトは中括弧 ({}) 内に記述されます:
  1. オブジェクトには複数の名前と値のペアを含めることができます:

    {
        "name": "runoob",
        "alexa": 10000,
        "sites": {
            "site1": "www.runoob.com",
            "site2": "m.runoob.com",
            "site3": "c.runoob.com"
        }
    }
JSON 配列
    JSON 配列を括弧内に記述します:
  1. 配列には複数のオブジェクトを含めることができます:

    {
        "sites": [
            {
                "name": "菜鸟教程",
                "url": "www.runoob.com"
            },
            {
                "name": "google",
                "url": "www.google.com"
            },
            {
                "name": "微博",
                "url": "www.weibo.com"
            }
        ]
    }
JSON ブール値
{ "flag":true }

JSON null
{ "runoob":null }

Json は構造体に解析されます
//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. JSONを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)
    }
}
出力結果:

m:map[IP:127.0.0.1 name:SKY]
name : SKY

IP : 127.0.0.1

3. 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))
}
を生成します。

以上がgolang が JSON を生成し、JSON を解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。