Go:读取 JSON 文件与读取 JSON 字符串

我有一个名为的 JSON 文件example.json,如下所示:


{

    "name": "example",

    "type": "record"

}

我还有一个将上述内容表示为“字符串”的变量:


const example = `{

    "name": "example",

    "type": "record",

}`

我试图理解为什么将 JSON 文件的内容读入字节与读取变量的内容example不同。我的代码如下:


    bytesJSON, err := ioutil.ReadFile("example.json")

    if err != nil {

        fmt.Println(err)

    }


    bytesVar, err := json.Marshal(example)

    if err != nil {

        fmt.Println(err)

    }

两者都是 type []uint8,但看起来非常不同。关于为什么的任何想法?以及如何确保它们始终相同?


编辑:即使bytesVar := []byte(example)在同一问题中使用结果。


编辑:


bytesJSON好像:


[123 10 32 32 32 32 34 110 97 109 101 34 58 32 34 101 120 97 109 112 108 101 34 44 10 32 32 32 32 34 116 121 112 101 34 58 32 34 114 101 99 111 114 100 34 10 125]


bytesVar好像:


[34 112 117 98 115 117 98 95 101 120 97 109 112 108 101 95 116 111 112 105 99 34]


当打印到stdout.


守候你守候我
浏览 155回答 1
1回答

开满天机

注意:问题中的“编辑”输出使用的示例输入与问题中的不同。如果我们将它们打印为字符串,它就会变得清晰。fmt.Println(string(bytesJSON)){    "name": "example",    "type": "record",}ioutil.ReadFile就是文件中的内容。fmt.Println(string(bytesVar))"{\n        \"name\": \"example\",\n        \"type\": \"record\",\n    }"json.Marshal已将字符串编码example为 JSON。那是一个包含字符串的 JSON 字符串。相当于ioutil.ReadFile("example.json")是简单的example。如果我们解组bytesVar,我们会在example.var unmarshal string;json.Unmarshal(bytesVar,&unmarshal)fmt.Println(unmarshal){        "name": "example",        "type": "record",    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go