以下は golang によって紹介されています##チュートリアル コラムgolang が生成するものJSON そして JSON を解析します。困っている友達のお役に立てれば幸いです。
1. JSON を構造体に解析する
この部分の紹介前に、 Json 構文を簡単に紹介しましょうJSON 構文は JavaScript 構文のサブセットです。 JSON 構文は、JavaScript オブジェクト表記構文のサブセットです。 データは名前と値のペアで構成されます データはカンマで区切られます
中括弧はオブジェクトを保存します
角括弧は配列を保存します
1.JSON の名前と値のペア
"名前" : "値"2.JSON 値
は次のとおりです:
数値 (整数または浮動小数点数)## JSON データ文字列 (二重引用符内)
論理値 (true または false)
配列 (角括弧内)
オブジェクト (中括弧内)
null
JSON オブジェクト
{ "name": "runoob", "alexa": 10000, "sites": { "site1": "www.runoob.com", "site2": "m.runoob.com", "site3": "c.runoob.com" } }
{ "sites": [ { "name": "菜鸟教程", "url": "www.runoob.com" }, { "name": "google", "url": "www.google.com" }, { "name": "微博", "url": "www.weibo.com" } ] }
JSON 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)
}
}
出力結果:
name : SKY3. JSONIP : 127.0.0.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))
}
を生成します。
以上がgolang が JSON を生成し、JSON を解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。