golang生成JSON以及解析JSON

golang生成JSON以及解析JSON

目录

一、JSON解析到结构体

1.JSON名称/值对

2.JSON值

3.JSON数据

4.JSON对象

5.JSON数组

6.JSON布尔值

7.JSON null

二、JSON转map

三、生成JSON

一、JSON解析到结构体

在介绍这部分之前先简要介绍一下Json语法

JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。

数据在名称/值对中

数据由逗号分隔

大括号保存对象

中括号保存数组

1.JSON名称/值对 "name" : "value" 2.JSON值

可以是:

数字(整数或浮点数)

字符串(在双引号中)

逻辑值(true 或 false)

数组(在中括号中)

对象(在大括号中)

null

3.JSON数据

JSON 数字可以是整型或者浮点型

{ "age":30 } 4.JSON对象

JSON 对象在大括号({})中书写:

对象可以包含多个名称/值对:

{     "name": "runoob",     "alexa": 10000,     "sites": {         "site1": "www.runoob.com",         "site2": "m.runoob.com",         "site3": "c.runoob.com"     } } 5.JSON数组

JSON 数组在中括号中书写:

数组可包含多个对象:

{     "sites": [         {             "name": "菜鸟教程",             "url": "www.runoob.com"         },         {             "name": "google",             "url": "www.google.com"         },         {             "name": "微博",             "url": "www.weibo.com"         }     ] } 6.JSON布尔值 { "flag":true } 7.JSON null { "runoob":null }

Json解析到结构体

//JSON解析到结构体 package main import (     "encoding/json"     "fmt"     "os" ) type Server struct {     ServerName string     ServerIP   string } type Serverslice struct {     Servers []Server } func main() {     var s Serverslice     str := `{"servers":    [{"serverName":"Guangzhou_Base","serverIP":"127.0.0.1"},    {"serverName":"Beijing_Base","serverIP":"127.0.0.2"}]}`     err:=json.Unmarshal([]byte(str), &s)     if err!=nil{         fmt.Println(err)     }     fmt.Println(s)     fmt.Println(s.Servers[0].ServerName) } 二、JSON转map package main   import (     "fmt"     "encoding/json" ) func main() {     b := []byte(`{"IP": "127.0.0.1", "name": "SKY"}`)     m := make(map[string]string)     err := json.Unmarshal(b, &m)     if err != nil {         fmt.Println("Umarshal failed:", err)         return     }      fmt.Println("m:", m)      for k,v :=range m {         fmt.Println(k, ":", v)     } }

输出结果:

m: map[IP:127.0.0.1 name:SKY]

name : SKY

IP : 127.0.0.1

三、生成JSON package main import ( "encoding/json" "fmt" ) type Server struct { ServerName string `json:"serverName,string"` ServerIP string `json:"serverIP,omitempty"` } type Serverslice struct { Servers []Server `json:"servers"` } func main() { var s Serverslice s.Servers = append(s.Servers, Server{ServerName: "Guangzhou_Base", ServerIP: "127.0.0.1"}) s.Servers = append(s.Servers, Server{ServerName: "Beijing_Base", ServerIP: "127.0.02"}) b, err := json.Marshal(s) if err != nil { fmt.Println("JSON ERR:", err) } fmt.Println(string(b)) }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    SQLite使用JSON扩展

    SQLite使用JSON扩展,插件,加载,一、介绍 SQLite3.9.0之后的版本,添加了JSON扩展。在表中可以保存JSON类型。实际上SQLite将JSON类型的

    postgresql中对jsonb的查询及转换

    postgresql中对jsonb的查询及转换,数据,字段,表数据:需要将strata排除,并且过滤info字段中为{}的数据,将jsonb转换成text,替换“,{,}见SQL:sele

    node express返回json数据给前端

    node express返回json数据给前端,上传,格式,请注意,使用res.json()的格式1.前面不能添加 res.writeHead(200, {‘content-type‘: ‘text/

    golang代理怎么设置

    golang代理怎么设置,代理,请求,设置,语言,客户端,应用程序,Go语言(或称Golang)是一种广受欢迎的编程语言,尤其适用于网络编程。在创建Web应用程序

    什么是golang

    什么是golang,语言,执行,编程语言,机器语言,高级语言,运行,golang是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;它可以在不损

    php中json字符串如何转csv格式

    php中json字符串如何转csv格式,文件,字符串,数据,文件句柄,分隔符,字段,php中json字符串转csv格式的方法:1、创建一个php示例文件;2、将JSON字符

    JSONArray是什么

    JSONArray是什么,方法,对象,用于,文本,类型,字符串,JSONArray是一个有序的值序列,它的外部文本形式是一个用方括号括起来的字符串,用逗号分隔值,内

    json数据格式有哪些

    json数据格式有哪些,数据格式,格式,对象,数组,教程,集合,json有两种数据格式,分别是:1、对象格式,“{"key1":obj,"key2":obj,"key3":obj...}

    Json和Lua table互转的Lua模块

    Json和Lua table互转的Lua模块,分词,字符串,先分词,再解析,少写了语法检查module( "json_to_lua", package.seeall )--##################

    Golang之wait.Until 简单测试用例

    Golang之wait.Until 简单测试用例,结束,主程序,测试目的,验证wait.Until的用法 //测试wait.Until() 的用途package mainimport ( "fmt