Go by Example-golang操作json

package main

//Go by Example 中文:JSON 微信:6686496
import (
	"encoding/json"
	"fmt"
	"os"
)
type Response1 struct {
	Page int
	Fruits []string
}
type Response2 struct {
	Page int `json:"page"`
	Fruits []string `json:"fruits"`
}

func main() {

	//基本数据类型到 JSON 字符串的编码
	bolB,_:=json.Marshal(true)
	fmt.Println(string(bolB))

	intB,_:=json.Marshal(1)
	fmt.Println(string(intB))

	fltB,_:=json.Marshal(2.34)
	fmt.Println(string(fltB))

	strB,_:=json.Marshal("gopher")
	fmt.Println(string(strB))

	slcD:=[]string{"apple","peach","pear"}
	slcb,_:=json.Marshal(slcD)
	fmt.Println(string(slcb))

	mapD:=map[string]int{"apple":5,"lettuce":7}
	mapB,_:=json.Marshal(mapD)
	fmt.Println(string(mapB))

	//JSON 包可以自动的编码你的自定义类型。编码仅输出可导出的字段,并且默认使用他们的名字作为 JSON 数据的键。
	res1D:=&Response1{
		Page:   1,
		Fruits: []string{"apple","peach","pear"},
	}
	res1B,_:=json.Marshal(res1D)
	fmt.Println(string(res1B))

	//标签对应后,输出标签json
	res2D:=Response2{
		Page:   1,
		Fruits: []string{"apple","peach","pear"},
	}
	res2B,_:=json.Marshal(res2D)
	fmt.Println(string(res2B))

	byt:=[]byte(`{"num":6.13,"strs":["a","b"]}`)
	var dat map[string]interface{}

	if err:=json.Unmarshal(byt,&dat);err!=nil{
		panic(err)
	}
	fmt.Println(dat)
	num:=dat["num"].(float64)
	fmt.Println(num)

	strs:=dat["strs"].([]interface{})
	str1:=strs[0].(string)
	fmt.Println(str1)

	str:=`{"page":1,"fruits":["apple","peach"]}`
	res:=&Response2{}
	json.Unmarshal([]byte(str),&res)
	fmt.Println(res)
	fmt.Println(res.Fruits[0])

	//我们也可以和os.Stdout 一样,直接将 JSON 编码直接输出至 os.Writer流中,或者作为 HTTP 响应体
	enc:=json.NewEncoder(os.Stdout)
	d:=map[string]int{"apple":5,"lettuce":7}
	enc.Encode(d)



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空getmoney

微信6686496

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值