首页 > 其他分享 >0124-Go-JSON 转换

0124-Go-JSON 转换

时间:2022-11-28 22:23:03浏览次数:59  
标签:0124 string fmt json Println JSON Go main Marshal

环境

  • Time 2022-08-25
  • Go 1.19

前言

说明

参考:https://gobyexample.com/json

目标

使用 Go 语言的 JSON。

简单值

package main

import (
    "encoding/json"
    "fmt"
)

func main() {

    bolB, _ := json.Marshal(true)
    fmt.Println(string(bolB))

    intB, _ := json.Marshal(1)
    fmt.Println(string(intB))

    fltB, _ := json.Marshal(2.34)
    fmt.Println(string(fltB))

    strB, _ := json.Marshal("gopher")
    fmt.Println(string(strB))
}

引用值

package main

import (
    "encoding/json"
    "fmt"
)

func main() {

    slcD := []string{"apple", "peach", "pear"}
    slcB, _ := json.Marshal(slcD)
    fmt.Println(string(slcB))

    mapD := map[string]int{"apple": 5, "lettuce": 7}
    mapB, _ := json.Marshal(mapD)
    fmt.Println(string(mapB))
}

结构体

package main

import (
    "encoding/json"
    "fmt"
)

type response1 struct {
    Page   int
    Fruits []string
}

type response2 struct {
    Page   int      `json:"page"`
    Fruits []string `json:"fruits"`
}

func main() {
    res1D := &response1{
        Page:   1,
        Fruits: []string{"apple", "peach", "pear"}}
    res1B, _ := json.Marshal(res1D)
    fmt.Println(string(res1B))

    res2D := &response2{
        Page:   1,
        Fruits: []string{"apple", "peach", "pear"}}
    res2B, _ := json.Marshal(res2D)
    fmt.Println(string(res2B))
}

反序列化

package main

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

type response1 struct {
    Page   int
    Fruits []string
}

type response2 struct {
    Page   int      `json:"page"`
    Fruits []string `json:"fruits"`
}

func main() {
    byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
    var dat map[string]any
    if err := json.Unmarshal(byt, &dat); err != nil {
        panic(err)
    }
    fmt.Println(dat)

    num := dat["num"].(float64)
    fmt.Println(num)

    strs := dat["strs"].([]any)
    str1 := strs[0].(string)
    fmt.Println(str1)

    str := `{"page": 1, "fruits": ["apple", "peach"]}`
    res := response2{}
    json.Unmarshal([]byte(str), &res)
    fmt.Println(res)
    fmt.Println(res.Fruits[0])

    enc := json.NewEncoder(os.Stdout)
    d := map[string]int{"apple": 5, "lettuce": 7}
    enc.Encode(d)
}

总结

使用 Go 语言的 JSON。

附录

标签:0124,string,fmt,json,Println,JSON,Go,main,Marshal
From: https://www.cnblogs.com/jiangbo4444/p/16933845.html

相关文章

  • 0125-Go-XML 转换
    环境Time2022-08-25Go1.19前言说明参考:https://gobyexample.com/xml目标使用Go语言的XML。示例packagemainimport("encoding/xml""fmt")......
  • json字符串转json对象三种方式
    //1,js自带的eval函数,其中需要添加小括号eval('('+str+')');functionstrToJson(str){varjson=eval('('+str+')');returnjson;}//2,newFunction形式fun......
  • go zap日志库
    https://github.com/labring/sealos/blob/main/pkg/utils/logger/logger.gopackagelogger   import( "fmt" "os" "strings"......
  • go源码学习(一):数据结构-数组
    数组是相同类型元素的集合,在内存中对应一块连续的内存空间。数组类型是通过存储的元素类型以及能够存储的大小两个维度来决定的,一旦声明之后大小就不可更改。初始化go语......
  • Android Google开源库——Volley的简单使用
    介绍一下AndroidGoogle开源库——Volley的简单使用volley 项目地址 ​​https://github.com/smanikandan14/Volley-demo​​JSON,图像等的异步下载;网络请求的排序(sc......
  • Java:Hutool工具箱之hutool-jsonJSON数据读取转换处理
    文档https://hutool.cn/docs/#/json/概述依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-json</artifactId><version>5.8.10</versi......
  • jQuery插件FullCalendar日程表实现可扩展Google日历功能
    这个介绍jQuery日历FullCalendar插件是一个非常不错的日历工具,可用于制作日程表或计划安排等,可扩展Google日历功能,制作个性化的日程表,同时可绑定点击事件或拖动事件,使用非常......
  • Django视图中的请求与响应
    一请求一限制http请求视图中的request,实际上是django源码中的HTTPRequest的子类WSGIRequest类的实例对象,主要由django对客户端请求的http协议报文进行解析后得到的请求......
  • Pycharm 搭建 Django 项目
    1.安装需求在使用python框架Django需要注意下面事项Pycharm版本是专业版而不是社区版本Pycharm配置好了python解释器(一般我们现在用的都是python3)我自己使......
  • 6.go中的派生/复杂数据类型
    1.指针1.基本数据类型也叫值类型,在内存中存储值,指针类型一个地址,地址指向的空间存储的值才是        2.&,获取地址2.数组3.结构体......