Golang json用法詳細(一)
3083 ワード
Golang json用法詳細(一)
概要
jsonフォーマットは私たちが日常的に最もよく使うシーケンス化フォーマットの一つと言える.Go言語はGoogleが開発したインターネットと呼ばれるC言語として、自然とJSONフォーマットにもよくサポートされている.しかし、Go言語は強いタイプの言語であり、フォーマットに対する要求は極めて厳しく、JSONフォーマットにもタイプがあるが、安定していない.だから本編の主な目的ははGolang解析jsonのほとんどの能力を掘り起こす である.比較的優雅な解決jsonを解析する際に存在する様々な問題 Golangがjsonを解析する過程 に深く入り込む
Golang解析JSONのTag編構造体が正常にシーケンス化された後はどのようなものですか. Tagとは何ですか.tagはラベルです.構造体の各フィールドにラベルを付けます.ラベルの冒頭はタイプで、後ろはラベル名です.`` が見えます omitempty,tagにomitempyを加えると,シーケンス化時に0値または空の値``package main import("encoding/json""fmt")/Product_を無視できる.type Product struct{Name string type、時には、シーケンス化または逆シーケンス化の場合、構造体タイプと必要なタイプが一致しない可能性があります.この場合、string、number、boolean``package main import(「encoding/json」「fmt」)/Product_を指定し、サポートできます.type Product struct{Name string 転載先:https://www.cnblogs.com/yangshiyu/p/6942414.html
概要
jsonフォーマットは私たちが日常的に最もよく使うシーケンス化フォーマットの一つと言える.Go言語はGoogleが開発したインターネットと呼ばれるC言語として、自然とJSONフォーマットにもよくサポートされている.しかし、Go言語は強いタイプの言語であり、フォーマットに対する要求は極めて厳しく、JSONフォーマットにもタイプがあるが、安定していない.だから本編の主な目的は
Golang解析JSONのTag編
package main
import (
"encoding/json"
"fmt"
)
// Product
type Product struct {
Name string
ProductID int64
Number int
Price float64
IsOnSale bool
}
func main() {
p := &Product{}
p.Name = "Xiao mi 6"
p.IsOnSale = true
p.Number = 10000
p.Price = 2499.00
p.ProductID = 1
data, _ := json.Marshal(p)
fmt.Println(string(data))
}
//
{"Name":"Xiao mi 6","ProductID":1,"Number":10000,"Price":2499,"IsOnSale":true}
// Product _ type Product struct { Name string
json:“name”ProductID int64
json:“-”// Number int
json:“number”Price float64
json:“price”IsOnSale bool
json:“is_on_sale,string”`}//シーケンス化後、{“name”:“Xiao mi 6”、“number”:10000、“price”:2499、“is_on_sale”:“false”}``json:"name"
ProductID int 64 json:"product_id,omitempty"
Number int json:"number"
Price float 64 json:"price"
IsOnSale bool json:"is_on_sale,omitempty"
}funcmain(){p:=&Product{}p.Name="Xiao mi 6"p.IsOnSale=false p.Number=10000 p.Price=2499.00 p.ProductID=0 data, _ := json.Marshal(p)
fmt.Println(string(data))
}//結果{"name":"Xiao mi 6","number":10000,"number":10000,""","number":10000,10000,10000 p.Price=2499.00 p.Price=2499.000 p.Price=2499.000 p.ProductID=2424price:2499} ``` json:"name"
ProductID int 64 json:"product_id,string"
Number int json:"number,string"
Price float 64 json:"price,string"
IsOnSale bool json:"is_on_sale,string"
}func main(){ var data = `{"name":"Xiao mi 6","product_id":"10","number":"10000","price":"2499","is_on_sale":"true"}`
p := &Product{}
err := json.Unmarshal([]byte(data), p)
fmt.Println(err)
fmt.Println(*p)
}//結果{Xiao mi 6 10,000 2499 true}``