다음 튜토리얼 칼럼인 golang에서는 JSON을 생성하고 JSON을 구문 분석하는 golang을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
1. JSON 구문 분석 구조
이 부분을 소개하기 전에 Json 구문을 간략하게 소개하겠습니다
JSON 구문은 JavaScript 구문의 하위 집합입니다. JSON 구문은 JavaScript 개체 표기법 구문의 하위 집합입니다.
데이터는 이름/값 쌍입니다.
데이터는 쉼표로 구분됩니다.
중괄호는 개체를 저장합니다.
대괄호는 배열을 저장합니다.
1.JSON 이름/값 쌍
"name" : "value"
2.JSON 값
가능:
숫자(정수 또는 부동 소수점)
문자열(큰따옴표 안)
논리값(true 또는 false)
배열(대괄호 안)
개체(중괄호 안)
null
{ "age":30 }
{ "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" } ] }
{ "flag":true }
json 구조로 구문 분석됨
E//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 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) } }
m: map [ip: 127.0.0 .0.1 name:SKY]
name : SKYIP : 127.0.0.13 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!