golang中json的使用

深碍√TFBOYSˉ_ 2022-07-13 07:25 285阅读 0赞

golang中使用json,经常会使用到两个函数

  1. func Unmarshal(data []byte, v interface{}) error

1 将json反序列化成struct对象

2将json 反序列化到map中

3 将json反序列化到slice中

  1. func Marshal(v interface{}) ([]byte, error)

1将struct对象序列化成json

2将map序列化成json

3将slice序列化成json

package main

import (

  1. "fmt"
  2. "encoding/json"

)

type User struct {

  1. Username string
  2. Password string
  3. FriendName \[\]string

}

func main() {

  1. user:=User\{\}
  2. user.Username="Tom"
  3. user.Password="123456"
  4. user.FriendName=\[\]string\{"Li","Fei"\}
  5. //将struct转成json字符串,注意:结构体中的字段首字母必须大写,否则无法解析
  6. if userJSON,err:=json.Marshal(user);err==nil\{
  7. fmt.Println(string(userJSON)) //打印结果:\{"Username":"Tom","Password":"123456","FriendName":\["Li","Fei"\]\}
  8. \}
  9. //将slice转成json字符串
  10. arr:=\[\]string\{"Apple","Orange","Banana"\}
  11. if arrJSON,err:=json.Marshal(arr);err==nil\{
  12. fmt.Println(string(arrJSON)) //打印结果:\["Apple","Orange","Banana"\]
  13. \}
  14. //将map转成json字符串
  15. m:=map\[string\]string\{"浙江":"杭州","湖南":"长沙"\}
  16. if mJSON,err:=json.Marshal(m);err==nil\{
  17. fmt.Println(string(mJSON)) //打印结果:\{"浙江":"杭州","湖南":"长沙"\}
  18. \}
  19. //json转成struct
  20. jsonStr:=\`\{"Username":"Tom","Password":"123456","FriendName":\["Li","Fei"\]\}\`
  21. var userJSON User
  22. if err:=json.Unmarshal(\[\]byte(jsonStr),&userJSON);err==nil\{
  23. fmt.Println(userJSON) //打印结果:\{Tom 123456 \[Li Fei\]\}
  24. \}
  25. //json转成slice
  26. jsonFruit:=\`\["Apple","Orange","Banana"\]\`
  27. var arrFruit \[\]string
  28. if err:=json.Unmarshal(\[\]byte(jsonFruit),&arrFruit);err==nil\{
  29. fmt.Println(arrFruit) //打印结果:\[Apple Orange Banana\]
  30. \}
  31. //json转成map
  32. jsonCity:=\`\{"浙江":"杭州","湖南":"长沙"\}\`
  33. var mapCity map\[string\]string
  34. if err:=json.Unmarshal(\[\]byte(jsonCity),&mapCity);err==nil\{
  35. fmt.Println(mapCity) //打印结果: map\[浙江:杭州 湖南:长沙\]
  36. \}

}

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读