从Go结构创建JSON表示

时间:2016-12-11 13:26:05

标签: json go

我正在尝试从结构创建一个JSON字符串:

package main

import "fmt"

func main() {
    type CommentResp struct {
        Id   string `json: "id"`
        Name string `json: "name"`
    }

    stringa := CommentResp{
        Id:   "42",
        Name: "Foo",
    }

    fmt.Println(stringa)
}

此代码打印{42 foo},但我预计{"Id":"42","Name":"Foo"}

1 个答案:

答案 0 :(得分:9)

您要打印的内容是fmt CommentResp结构的序列化。相反,您要做的是使用json.Marshal来获取编码的JSON表示:

data, err := json.Marshal(stringa)
if err != nil {
     // Problem encoding stringa
     panic(err)
}
fmt.Println(string(data))

https://play.golang.org/p/ogWKQ3M6tb

此外,您的json结构标记无效; :和引用字符串之间不能有空格:

type CommentResp struct {
    Id   string `json:"id"`
    Name string `json:"name"`
}

https://play.golang.org/p/eQiyTk6-vQ