Go Lang返回JSON

时间:2015-01-30 17:57:21

标签: json go

Go还是新手。我试图开始实质上打印一个结构,其键和值尽可能接近json。

我目前正在这样做的方式就是在它自己的服务器上使用GO,并且每当发出get请求时,它都会返回JSON。我想将GO作为可执行文件放在我的主Rails服务器上,然后只返回类似Println的JSON(或任何使它保持结构形式的东西)。问题是当我尝试走这条路线时,结构中的键没有用它打印,我基本上必须将键添加为返回字符串的一部分。

有没有一种简单的方法来保持正确的键和值(及其类型,所以如果值是一个数组,保持数组)

1 个答案:

答案 0 :(得分:1)

在Go:

中将结构作为JSON打印到STDOUT是相当简单的
package main

import (
    "encoding/json"
    "fmt"
    "log"
    "os"
)

func main() {
    foo := struct {
        Hello string
        JSON  string
    }{
        Hello: "world",
        JSON:  "stuff",
    }

    fmt.Printf("foo struct : %+v\n", foo)

    if err := json.NewEncoder(os.Stdout).Encode(foo); err != nil {
        log.Fatal(err)
    }

}

http://play.golang.org/p/wqqGJ1V_Zg

该程序将输出以下内容:

foo struct : {Hello:world JSON:stuff}
{"Hello":"world","JSON":"stuff"}

从你的问题我真的不明白你的意思。在任何情况下,如果您想将结构打印为JSON,或者您只想将结构打印为尽可能接近JSON,那么您的答案就在那里。