Go 中的 php json_encode

标签 php go

在 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/

相关文章:

nginx - SSL with GoLang 使用反向代理 Nginx

pointers - 覆盖接口(interface)指针值

php - 在函数中使用 PHP define() 是否真的对该函数的调用者有用?

php - 如何为每个用户构建未读项目警报的数据库

php - 用于根据列值分隔 HTML 表的 CSV 文件

php - 当我应该得到结果时得到 array(0) { }

php - 以 PHP 存储价格。什么是更好的双或字符串?

go - 多个延迟与延迟匿名函数

go - 如何声明 runtime.LockOSThread() 和 runtime.UnlockOSThread()

arrays - 戈朗 : array is empty after call a method that adds items to the array