GO-JSON读写3-读写JSON文件

概述

  • 本地文件是存储JSOP数据的一个重要方案
  • 将Go数据以JSON字符串的形式写出到文件中的过程称之为编码
  • 从文件中读取JSON字符串为Go数据的过程称之为解码

导入依赖

import (
    "encoding/json"
    "os"
    "fmt"
)

定义结构体

type PersonII struct {
    Name    string
    Age     int
    Sex     bool
    Hobbies []string
}

将Go数据编码到json文件 
将结构体实例以JSON格式写出到文件的过程称为编码,其一般步骤是:

  • 准备Go数据
  • 打开文件并创建基于该文件的JSON编码器
  • 将Go数据编码到文件中
func main31() {
    //创建PersonII实例小黑子
    xhz := PersonII{"小黑子", 60, true, []string{"撸代码", "撸项目", "撸其它的"}}

    //创建文件(并打开)
    filePtr, err := os.Create("d:/小黑子.json")
    if err!=nil{
        fmt.Println("创建文件失败,err=",err)
        return
    }
    defer filePtr.Close()

    //创建基于文件的JSON编码器
    encoder := json.NewEncoder(filePtr)

    //将小黑子实例编码到文件中
    err = encoder.Encode(xhz)
    if err!=nil{
        fmt.Println("编码失败,err=",err)
    }else{
        fmt.Println("编码成功")
    }
}

将json文件解码为Go数据 
从文件中读取JSON数据为Go语言数据的过程称之为解码,其一般步骤为:

  • 打开含有JSON字符串的文件
  • 创建基于改文件的JSON解码器
  • 解码文件中的JSON数据到相应的Go数据指针中
func main32() {

    //预定义解码结果
    var xhz PersonII

    //打开文件
    filePtr, _ := os.Open("d:/小黑子.avi")
    defer filePtr.Close()

    //创建该文件的json解码器
    decoder := json.NewDecoder(filePtr)

    //把解码的结果存在xhz的地址中
    err := decoder.Decode(&xhz)
    if err!=nil{
        fmt.Println("解码失败,err=",err)
    }else {
        fmt.Printf("解码成功:%#v\n",xhz)
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值