在 php 中我有这个:
<?php
$x = array(1,2,3,4);
$y = json_encode($x);
echo $y;
?>
它的结果是:
[1,2,3,4]
在 Go 中,当我使用 json.Marshal()
或 jsonEncoder
编码方法时,结果是:
[1 2 3 4]
这不等同于 json_encode() 在 php 中的结果,我无法在 php 中对其进行解码。
在 go 中有没有达到 [1, 2, 3, 4] 编码的结果? (每个项目之间有“,”分隔符)
最佳答案
当您使用 json.Marshal 时,结果将是 [1 2 3 4] 但如果您想将结果用作字符串并将其发送到另一个地方(如 redis ),或者作为有效的 json 在屏幕上打印,您应该显式地转换你的结果。
以下是错误和正确的代码:
package main
import (
"fmt"
"encoding/json"
)
func main() {
x := []int64{1, 2, 3, 4}
y, err := json.Marshal(x)
if err != nil {
panic(err)
}
fmt.Println(y)
}
正确的代码是: 包主
进口( “调频” “编码/json” )
func main() {
x := []int64{1, 2, 3, 4}
y, err := json.Marshal(x)
if err != nil {
panic(err)
}
fmt.Println(string(y))
}
关于Go 中的 php json_encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376218/