Go生成json、解析json和多维json数组解析

go生成和解析json结构是按结构体模式解析的,所以结构体类型一定要多练习熟悉。

完整代码(可以运行):

1// +build ignore 2package main 3 4import ( 5 "encoding/json" 6 "fmt" 7) 8 9type Person struct { 10 Name string 11 Age int 12} 13 14type Family struct { 15 Persons []Person 16} 17 18func main() { 19 // 根据结构体生成json 20 manJson := Person{ 21 Name: "Elinx", 22 Age: 26, 23 } 24 man, _ := json.Marshal(manJson) 25 fmt.Println(string(man)) 26 27 // 解析json到结构体 28 jsonStr := []byte(`{"Name":"Elinx","Age":26}`) 29 var man2 Person 30 json.Unmarshal(jsonStr, &man2) 31 fmt.Println(man2) 32 33 // 解析json数组到切片(数组) 34 jsonArrStr := []byte(`[{"Name":"Elinx","Age":26}, {"Name":"Twinkle","Age":21}]`) 35 var jsonSlice []map[string]interface{} 36 37 json.Unmarshal(jsonArrStr, &jsonSlice) 38 fmt.Println(jsonSlice) 39 40 // 解析多维数组 41 var f Family 42 43 // 模拟传输的Json数据 44 familyJSON := `{"Persons": [{"Name":"Elinx","Age":26}, {"Name":"Twinkle","Age":21}] }` 45 46 fmt.Println("======================") 47 48 // 解析字符串为Json 49 json.Unmarshal([]byte(familyJSON), &f) 50 // 直接输出并不会展示全部层级,原因待考究 51 fmt.Println(f) 52 // 从新生成json字符串查看真实结构 53 jsons, _ := json.Marshal(f) 54 55 fmt.Println(string(jsons)) 56} 57

直接解析单键json

可以使用直接json转map结构

1// 直接解析json单key结构,不使用结构体 2uploadJSON := `{"xxxx": "test","zzzz": "1111111"}` 3var jsonSlice2 map[string]interface{} 4json.Unmarshal([]byte(uploadJSON), &jsonSlice2) 5fmt.Println(jsonSlice2)

参考文献

1.go json字符串转切片
2.golang生成JSON及解析JSON

点赞
收藏

评论区

加载中...

相关推荐

SpringBoot 默认json解析器详解和字段序列化自定义

前言在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理SpringBoot默认的json解析方案我们知道在springboot中有默认的json解析器,SpringBoot中默认使用的Json解析技术框架是ja

Go的json解析:Marshal与Unmarshal

简介Json(JavascriptObjectNanotation)是一种数据交换格式,常用于前后端数据传输。任意一端将数据转换成json字符串,另一端再将该字符串解析成相应的数据结构,如string类型,strcut对象等。go语言本身为我们提供了json的工具包”encoding/json”。更多的使用方式,可以参考:https:

C# JToken类的使用,实现解析动态json数据、遍历、查找

在原来解析json数据是,一般都是用反序列化来实现json数据的解读,这需要首先知道json数据的结构并且建立相应的类才能反序列化,一旦遇到动态的json数据,这种方法就不使用。为了解决动态解析json数据,微软有个Newtonsoft.Json封装类十分好用,里面的JToken直接实现ling查询。将json字符串解析为JToken,

Golang

golang官方为我们提供了标准的json解析库–encoding/json,大部分情况下,使用它已经够用了。不过这个解析包有个很大的问题–性能。它不够快,如果我们开发高性能、高并发的网络服务就无法满足,这时就需要高性能的json解析库,目前性能比较高的有jsoniterator和easyjson。现在我们需要引进一个高性能的json解析库

JSON教程

JSON教程JSON:JavaScript对象表示法(JavaScriptObjectNotation)。JSON是存储和交换文本信息的语法。类似XML。JSON比XML更小、更快,更易解析。每一章中用到的实例{    "star_male":    {

Python and JSON

什么是json:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA2623rdEditionDecember1999的一个子集。JSON采用完全独立于语言的