goland中结构体封装成json形式

本文介绍如何在Golang中使用结构体,并将其转换为JSON格式,包括定义结构体类型、实例化结构体对象、使用json包进行序列化等核心步骤。同时,通过实例演示了从HTTP响应中解析特定JSON字段的方法。

golang将结构体进行排列,封装成json的形式

type Product struct {
	Name string
	ProductId int64
	Number int
	Price float64
	IsOnSale bool
}


func main()  {
	p := Product{}
	p.Name="apple"
	p.ProductId=1
	p.Number=100
	p.Price=3.45
	p.IsOnSale=false
	data, _ := json.Marshal(&p)
	fmt.Println(string(data))
}

另外一个例子

package main

import (
	"fmt"
	"net/http"
	"io"
	"github.com/tidwall/gjson"
	"strings"
)

type Maths struct {
	end string
	limit string
	math_chinese string
	math_id string
	math_link string
	math_start string
	math_value string
	math_zang string
	start string
}


func main() {


	//
	//fmt.Println("---------------",gjson.Get(jsonstr1,"richtext.data.items"))
	//
	//ParseJson(jsonstr3)

	resp, err := http.Get("")
	if err!=nil {
		fmt.Println(err)
	}

	defer resp.Body.Close()

	buf := make([]byte, 80)
	str:=""
	for ; ;  {
		n, err := resp.Body.Read(buf)
		if err==io.EOF {
			fmt.Println(err)
			break
		}
		str+=string(buf[:n])
	}

	//fmt.Println(str)
	mymath := gjson.Get(str, "data.maths.1.#.math_link").String()
	fmt.Println("---------------",mymath)
	fmt.Printf("%T\n",mymath)
	mymath=mymath[2:len(mymath)-2]
	split := strings.Split(mymath, `","`)
	//for _,v:=range split  {
	//	v=v[1:len(v)-1]
	//}
	for _,v:=range split  {
		fmt.Println(v)
	}

	//fmt.Println(split[0][2:len(split[0])-1])
	//response, err := http.Get(split[0][2:len(split[0])-1])
	//defer response.Body.Close()
	//file, err := os.Create("abc.png")
	//defer file.Close()
	//for ; ;  {
	//	n, err := response.Body.Read(buf)
	//	if err==io.EOF {
	//		fmt.Println(err)
	//		break
	//	}
	//	file.Write(buf[:n])
	//}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值