尝试在Go中将字符串数组转换为json字符串。但我得到的只是一系列数字。
我错过了什么?
package main
import (
"fmt"
"encoding/json"
)
func main() {
var urls = []string{
"http://google.com",
"http://facebook.com",
"http://youtube.com",
"http://yahoo.com",
"http://twitter.com",
"http://live.com",
}
urlsJson, _ := json.Marshal(urls)
fmt.Println(urlsJson)
}
Go Playground上的代码:http://play.golang.org/p/z-OUhvK7Kk
答案 0 :(得分:7)
通过编组对象,您将获得表示JSON字符串的编码(字节)。如果你想要字符串,你必须将这些字节转换为字符串。
fmt.Println(string(urlsJson))
答案 1 :(得分:1)
另一种方法是直接使用os.Stdout.Write(urlsJson)
答案 2 :(得分:0)
您可以使用 stdout 输出编码器:
package main
import (
"encoding/json"
"os"
)
func main() {
json.NewEncoder(os.Stdout).Encode(urls)
}
或字符串生成器:
package main
import (
"encoding/json"
"strings"
)
func main() {
b := new(strings.Builder)
json.NewEncoder(b).Encode(urls)
print(b.String())
}