Create Json at Golang with struct
在Golang中创建Json

最近在写一个“分布式”的探针,php的服务端和客户端都写好了,但是在某些小内存的vps上跑php未免过于奢侈,于是正好用新学的Go来练一下手。

在PHP中生成json需要数组,在Go中这个概念叫 结构体(struct),用法如下:

首先引入encoding/json

package main  
import (  
    "fmt"  
    "encoding/json"  
)  

type Json struct {
    Cpuname        string
    Loadavg        string
    Ramtotal       string
}

func main() {  
    p := Json{Cpuname:"Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz", Loadavg:"0.57", Ramtotal:"16337716"}
    j, _ = json.Marshal(p)  
    fmt.Println(string(j))  
}

其实这里的Loadavg和Ramtotal应该用数字类型。

结构体的名称必须大写,否则获得一个{}。解决方法:

type Person struct {  
    Name string `json:"name"`  
    Age int   `json:"age"`  
    Sex int  `json:"sex"`  
}  

执行后获得正常的Json字符串:

{"Cpuname":"Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz\n","Loadavg":"0.26\n","Ramtotal":"16337716\n"}

最后修改于 Tue, 03 Jan 2017