猿问

Golang:转换为 JSON.GZ 并写入文件

试图用我的数据完成以下输出:


转换为 JSON 字符串并写入文件:output.json(这部分正在工作)

Gzip 压缩 JSON 字符串并将其写入 json.gz 文件: output.json.gz ( NOT WORKING )

代码运行良好并写入两个文件。但是当我尝试解压缩 gzip 文件时会出现此错误:Data error in 'output.json'. File is broken


这是代码:


package main


import (

    "bytes"

    "compress/gzip"

    "encoding/json"

    "fmt"

    "io/ioutil"

)


type Generic struct {

    Name string

    Cool bool

    Rank int

}


func main() {

    generic := Generic{"Golang", true, 100}

    fileJson, _ := json.Marshal(generic)

    err := ioutil.WriteFile("output.json", fileJson, 0644)

    if err != nil {

        fmt.Printf("WriteFileJson ERROR: %+v", err)

    }


    var fileGZ bytes.Buffer

    zipper := gzip.NewWriter(&fileGZ)

    defer zipper.Close()

    _, err = zipper.Write([]byte(string(fileJson)))

    if err != nil {

        fmt.Printf("zipper.Write ERROR: %+v", err)

    }

    err = ioutil.WriteFile("output.json.gz", []byte(fileGZ.String()), 0644)

    if err != nil {

        fmt.Printf("WriteFileGZ ERROR: %+v", err)

    }

}

我错过了什么?


慕慕森
浏览 244回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答