Go语言JSON文件的读写操作

7个月前 (04-27)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。

JSON 是一种使用 UTF-8 编码的纯文本格式,采用完全独立于语言的文本格式,由于写起来比 XML 格式方便,并且更为紧凑,同时所需的处理时间也更少,致使 JSON 格式越来越流行,特别是在通过网络连接传送数据方面。

开发人员可以使用 JSON 传输简单的字符串、数字、布尔值,也可以传输一个数组或者一个更复杂的复结构。在 Web 开发领域中,JSON 被广泛应用于 Web 服务端程序和客户端之间的数据通信。

Go语言内建对 JSON 的支持,使用内置的 encoding/json 标准库,开发人员可以轻松使用Go程序生成和解析 JSON 格式的数据。

JSON 结构如下所示:

{"key1":"value1","key2":value2,"key3":["value3","value4","value5"]}

写 JSON 文件

使用Go语言创建一个 json 文件非常方便,示例代码如下:

package main

import (

    "encoding/json"

    "fmt"

    "os"

)

type Website struct {

    Name   string `xml:"name,attr"`

    Url    string

    Course []string

}

func main() {

    info := []Website{{"Golang", "http://c.biancheng网站站点" rel="nofollow" /> [
    {
        "Name":"Golang",
        "Url":"http://c.biancheng网站站点" rel="nofollow" />

package main

import (

    "encoding/json"

    "fmt"

    "os"

)

type Website struct {

    Name   string `xml:"name,attr"`

    Url    string

    Course []string

}

func main() {

    filePtr, err := os.Open("./info.json")

    if err != nil {

        fmt.Println("文件打开失败 [Err:%s]", err.Error())

        return

    }

    defer filePtr.Close()

    var info []Website

    // 创建json解码器

    decoder := json.NewDecoder(filePtr)

    err = decoder.Decode(&info)

    if err != nil {

        fmt.Println("解码失败", err.Error())

    } else {

        fmt.Println("解码成功")

        fmt.Println(info)

    }

}

运行结果如下:

go run main.go
解码成功

[{Golang http://c.biancheng网站站点" rel="nofollow" />