首页 > Web开发 > 详细

Golang 与 Json

时间:2020-04-27 22:59:36      阅读:55      评论:0      收藏:0      [点我收藏+]

序列化:把go语言中的结构体变量 --> json格式的字符串

b, err := json.Marshal(p1)

反序列化:json格式的字符串 --> go语言中的能够识别的结构体变量

json.Unmarshal(b, &p2)  // 传递指针可以在函数内部修改p2值

示例:

package main

import (
   "encoding/json"
   "fmt"
)

// 结构体 <——> json格式

// 序列化:把go语言中的结构体变量 --> json格式的字符串
// 反序列化:json格式的字符串 --> go语言中的能够识别的结构体变量

// 首字母大写 : because 被 json包调用
// 特定格式 双引号内为被json序列化后的名称
type person struct {
   Name   string  `json:"name"`
   Age    int     `json:"age"`
   Grades float64 `json:"grades"`
}

func main() {
   p1 := person{
      Name:   "侠奢",
      Age:    18,
      Grades: 59.9,
   }

   // 序列化:将person类型变量转换为json格式
   b, err := json.Marshal(p1)
   if err != nil {
      fmt.Printf("marshal failed, err:%v", err)
      return
   }
   fmt.Printf("%v\n", string(b))

   // 反序列化:将json转换为person类型变量
   var p2 person
   json.Unmarshal(b, &p2) // 传递指针可以在函数内部修改p2值
   fmt.Printf("%#v\n", p2)

   str := `{"name":"猪头","age":16,"grades":99}`

   var p3 person
   json.Unmarshal([]byte(str), &p3)  // 第一个参数为[]byte
   fmt.Printf("%#v\n", p3)
}

Golang 与 Json

原文:https://www.cnblogs.com/newbase/p/12790613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!