func parse_array() {
fmt.Println("解析json字符串为结构体数组")
str := "[{\"name\":\"name1\",\"amount\":100},{\"name\":\"name2\",\"amount\":200},{\"name\":\"name3\",\"amount\":300},{\"name\":\"name4\",\"amount\":400}]"
all := []robot{}
err := json.Unmarshal([]byte(str), &all)
if err != nil {
fmt.Printf("err=%v", err)
for _, one := range all {
fmt.Printf("name=%v, amount=%v\n", one.Name, one.Amount)
// 解析到结构体指针的数组
func parse_pointer_array() {
fmt.Println("解析json字符串为结构体指针的数组")
str := "[{\"name\":\"name1\",\"amount\":100},{\"name\":\"name2\",\"amount\":200},{\"name\":\"name3\",\"amount\":300},{\"name\":\"name4\",\"amount\":400}]"
all := []*robot{}
err := json.Unmarshal([]byte(str), &all)
if err != nil {
fmt.Printf("err=%v", err)
for _, one := range all {
fmt.Printf("name=%v, amount=%v\n", one.Name, one.Amount)
func main() {
// 解析为结构体数组
parse_array()
// 解析为结构体指针的数组
parse_pointer_array()
废话不多说直接上效果图完整代码如下package mainimport ( "encoding/json" "fmt")// 结构体定义type robot struct { Name string `json:"name"` Amount int `json:"amount"`}// 解析到结构体数组func parse_array() { fmt...
1、 string的定义
Golang中的string的定义在reflect包下的value.go中,定义如下:
StringHeader 是
字符串
的运行时表示,其中包含了两个字段,分别是指向数据
数组
的指针和
数组
的长度。
// StringHeader is the runtime representation of a string.
// It cannot be used safely or portably and its representation may
// change in a late
1.
解析
json
字符串
到结构体
将
json
字符串
解析
到结构体,因为这里的 common_policy_config 是
json
数组
,没办法用字段来表示,所以需要用 []interface{} 来存。
package main
import (
"encoding/
json
"
"github.com/beego/beego/v2/adapter/logs"
type Request_common_policy_config struct {
Action stri
string, for
JSON
strings
[]interface{}, for
JSON
arrays
map[string]interface{}, for
JSON
objects
nil for
JSON
null
对于
json
中的booleans 会...
type Class struct {
Grade int `
json
:"grade"` //年级
ClassNumber int `
json
:"classNumber"` //班级号
type Student struct{
Name string //大写开头,可被导出,没有`j.
type IT struct {
Company string `
json
:"company"`
Subjects []string `
json
:"subjects"` //二次编码
IsOk bool `js...
json
.Marshal() 会根据传入的结构体生成
json
数据。
解析
JSON
会把数据
解析
到结构体中。
说明: 由于
json
.UnMarshal()方法接收的是字节切片,所以首先需要把
JSON
字符串
转换成字节切片c := []byte(s) Playground url: play.golang.org/p/mcB6Kb6zC…
package main
import (
"encoding/
json
"
需要使用的库有golang自带的enconding/
json
库以及g
json
库。 主要思路是将
json
字符串
中的值分别赋值到已经建立的结构体中,然后通过Marshal函数打印
字符串
输出,以便查看。
package main
import (
"bytes"
"encoding/
json
"
"fmt"
"github.com/gogf/gf/g/encoding/g
json
"
"g...
wanmei002:
linux查看磁盘IO,网络IO 总结
tar压缩和解压文件或文件夹