3 回答
TA贡献1871条经验 获得超13个赞
声明与 JSON 文档结构匹配的类型。
type client struct {
Hostname string `json:"Hostname"`
IP string `json:"IP"`
MacAddr string `json:"MacAddr"`
}
type connection struct {
Clients []*client `json:"Clients"`
}
使用这些类型初始化值并编码为 JSON。
var clients []*client
for _, line := range strings.Split(line, "\n") {
if line != "" {
s := strings.Split(line, " ")
clients = append(clients, &client{Hostname: s[0], IP: s[1], MacAddr: s[2]})
}
}
p, _ := json.Marshal(connection{Clients: clients})
fmt.Printf("%s\n", p)
json:"Hostname"此示例中不需要JSON 字段标记 ( ),因为 JSON 对象键是有效的导出标识符。我在这里包含标签是因为它们经常被需要。
TA贡献2041条经验 获得超4个赞
创建切片和映射以匹配所需数据的结构。
var clients []interface{}
for _, line := range strings.Split(line, "\n") {
if line != "" {
s := strings.Split(line, " ")
clients = append(clients, map[string]string{"Hostname": s[0], "IP": s[1], "MAC": s[2]})
}
}
connections := map[string]interface{}{"Clients": clients}
p, _ := json.Marshal(connections)
fmt.Printf("%s\n", p)
TA贡献1789条经验 获得超8个赞
您需要初始化 2 个结构
type Client struct {
Hostname string
IP string
MacAddr string
}
type Connection struct {
Clients []Client
}
并使用 Marshal 将 struct 转换为 Json
var clients []Client
clients = append(clients, Client{
Hostname: "localhost",
IP: "127.0.0.1",
MacAddr: "1123:22512:25632",
})
// add more if you want ...
myJson, _ := json.Marshal(Connection{Clients:clients})
fmt.Println(string(myJson))
不要忘记导入这个
import "encoding/json"
- 3 回答
- 0 关注
- 448 浏览
添加回答
举报