欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

golang json沒有傳值

錢多多2年前8瀏覽0評論

在使用Golang編寫程序的過程中,JSON是一個常用的數據交換格式。然而,在處理JSON數據時,如果出現沒有傳值的情況,就需要進行處理。

func main() {
var jsonString string
// 模擬沒有傳值的情況
err := json.Unmarshal([]byte{}, &jsonString)
// 錯誤處理
if err != nil {
fmt.Println("JSON數據傳輸失敗", err)
}
fmt.Println(jsonString)
}

這里使用了函數json.Unmarshal()來將JSON數據解碼后賦值給jsonString變量。然而,在模擬沒有傳值的情況時,將[]byte{}作為第一個參數使用,則會觸發JSON數據傳輸失敗。

如果需要在解碼JSON數據時處理沒有傳值的情況,需要使用json.Decoder()來進行處理。具體代碼如下:

func main() {
type User struct {
Name      string
Age       int    										
BirthDate string 										
}
var jsonStr string
//模擬傳過來的 JSON 字符串
jsonStr = `{"name": "John", "age": 30}`
//將JSON數據解碼
dec := json.NewDecoder(strings.NewReader(jsonStr))
for{
t,err := dec.Token()
if err == io.EOF{										
break
}
if err!=nil{
log.Fatal(err)
}
if t == nil{										
continue
} 
switch et:=t.(type){
case string:
fmt.Printf("%v : \n",et)
err = dec.Decode(&User{
})
if err!= nil{
fmt.Println(err)
}
fmt.Println(User)
case json.Delim:
fmt.Println("delimiter : ",et)
default:
fmt.Printf("not supported : %T",et)
}
}
}

這里使用json.NewDecoder()與io.EOF來處理JSON數據的解碼,如果出現沒有傳值的情況,也可以正確解碼。