Go - JSON

  • ex. var p = Person{}; json.Marshal(p)
  • json.marshal return byte slice contains long string wuthout extraneous
  • Ex.data, err = json.MarshalIndent to format jaon. Use fmt.Printf(”%s”,data) to print to string
  • Only exported fields are marshalled
  • Field tags is a string of meta data associated at compile time with a field of a struct.
  • Ex. type S struct {num int `json:“release”`, real bool `json:“ok,omitempty”`}
  • omitempty indicate no output value if variable is zero value
  • Unmarshal object. json.Unmarshal
  • Ex. Unmarshal json to slice. (How the type is decided? Always slice?)
    • Ex. type Person struct {Name string}; ps := json.Unmarshal(json)
    • var titles []struct{ Title string }; if err := json.Unmarshal(data, &titles);
  • Field of Struct used to unmarshal json must be capitalized. But map from json to struct is case insensitive


沒有留言:

張貼留言

別名演算法 Alias Method

 題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...