结构体转json

结构体转json示例:

package main

import (
"encoding/json"
"fmt"
) //用户
type User struct {
UserName string `json:"username"`
NickName string `json:"nickname"`
Age int `json:"age"`
Birthday string `json:"birthday"`
Sex string `json:"sex"`
Email string `json:"email"`
Phone string `json:"phone"`
} //结构体转JSON
func structToJSON() { user := User{
UserName: "itbsl",
NickName: "jack",
Age: 18,
Birthday: "2001-08-15",
Sex: "itbsl@gmail.com",
Phone: "176XXXX6688",
} data, err := json.Marshal(user) if err != nil {
fmt.Println("json.marshal failed, err:", err)
return
} fmt.Printf("%s\n", string(data))
} func main() { structToJSON() }

输出结果:

{"username":"itbsl","nickname":"jack","age":18,"birthday":"2001-08-15","sex":"itbsl@gmail.com","email":"","phone":"176XXXX6688"}

map转json

map转json示例:

package main

import (
"encoding/json"
"fmt"
) //map转json
func mapToJSON(tempMap *map[string]interface{}) string { data, err := json.Marshal(tempMap) if err != nil {
panic(err)
} return string(data)
} func main() { tempMap := make(map[string]interface{}) tempMap["username"] = "itbsl"
tempMap["age"] = 18
tempMap["sex"] = "male" str := mapToJSON(&tempMap) fmt.Println(str) }

输出结果:

{"age":18,"sex":"male","username":"itbsl"}

int转json

int转json

package main

import (
"encoding/json"
"fmt"
) func testInt() {
var age = 100
data, err := json.Marshal(age)
if err != nil {
fmt.Printf("json.marshal failed, err:", err)
return
} fmt.Printf("%s\n", string(data))
} func main() {
testInt()
}

输出结果:

100

slice转json

slice转json

package main

import (
"encoding/json"
"fmt"
) //slice转json
func sliceToJSON(s []map[string]interface{}) string { data, err := json.Marshal(s) if err != nil {
panic(err)
} return string(data) } func main() { var s []map[string]interface{} tempMap := make(map[string]interface{}) tempMap["username"] = "itbsl"
tempMap["age"] = 18
tempMap["sex"] = "male" s = append(s, tempMap) tempMap = make(map[string]interface{}) tempMap["username"] = "jane"
tempMap["age"] = 23
tempMap["sex"] = "female" s = append(s, tempMap) str := sliceToJSON(s) fmt.Println(str)
}

输出结果:

[{"age":18,"sex":"male","username":"itbsl"},{"age":23,"sex":"female","username":"jane"}]

json反序列化为结构体

json转结构体:

package main

import (
"encoding/json"
"fmt"
) //用户
type User struct {
UserName string `json:"username"`
NickName string `json:"nickname"`
Age int `json:"age"`
Birthday string `json:"birthday"`
Sex string `json:"sex"`
Email string `json:"email"`
Phone string `json:"phone"`
} //结构体转JSON
func structToJSON() string { user := User{
UserName: "itbsl",
NickName: "jack",
Age: 18,
Birthday: "2001-08-15",
Sex: "itbsl@gmail.com",
Phone: "176XXXX6688",
} data, err := json.Marshal(user) if err != nil {
fmt.Println("json.marshal failed, err:", err)
return ""
} return string(data)
} //json转结构体
func JSONToStruct(str string) { var user User err := json.Unmarshal([]byte(str), &user) if err != nil { panic(err)
} fmt.Println(user) } func main() { JSONToStruct(structToJSON())
}

输出结果:

{itbsl jack 18 2001-08-15 itbsl@gmail.com  176XXXX6688}

json反序列化为map

json转map

package main

import (
"encoding/json"
"fmt"
) //map转json
func mapToJSON(tempMap *map[string]interface{}) string { data, err := json.Marshal(tempMap) if err != nil {
panic(err)
} return string(data)
} func JSONToMap(str string) { var tempMap map[string]interface{} err := json.Unmarshal([]byte(str), &tempMap) if err != nil {
panic(err)
} fmt.Println(tempMap) } func main() { tempMap := make(map[string]interface{}) tempMap["username"] = "itbsl"
tempMap["age"] = 18
tempMap["sex"] = "male" str := mapToJSON(&tempMap) JSONToMap(str)
}

输出结果:

map[age:18 sex:male username:itbsl]

Go语言JSON数据相互转换的更多相关文章

  1. 【Python】python和json数据相互转换,json读取和写入,repr和eval()使用

    python数据转换json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import jso ...

  2. php:数组与json数据相互转换

    1.数组转json $json=json_encode(数组名) 数组转json字符串 2,json转数组 $arr=json_decode(json字符串,[true]) 不加true第一次转直接转 ...

  3. go语言json技巧

    go语言json技巧 本文总结了在项目中遇到的那些关于go语言JSON数据与结构体之间相互转换的问题及解决办法. 基本的序列化 首先我们来看一下Go语言中json.Marshal()(系列化)与jso ...

  4. JSON数据的解析和生成(Swift)

    Codable public typealias Codable = Decodable & Encodable public protocol Decodable {} public pro ...

  5. Swift语言中如何使用JSON数据教程

    这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial Swift语言中如何使用JSO ...

  6. 在 Swift 语言中更好的处理 JSON 数据:SwiftyJSON

    SwiftyJSON能够让在Swift语言中更加简便处理JSON数据. With SwiftyJSON all you have to do is: ? 1 2 3 4 let json = JSON ...

  7. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  8. 使用Go语言访问JSON数据(gojsonq)

    使用Go语言访问JSON数据(gojsonq) 主要是使用第三方的库 gojsonq,来查询JSON数据 例如这样的JSON数据 { "name":"computers& ...

  9. Go语言使用匿名结构体解析JSON数据

    手机拥有屏幕.电池.指纹识别等信息,将这些信息填充为 JSON 格式的数据.如果需要选择性地分离 JSON 中的数据则较为麻烦.Go 语言中的匿名结构体可以方便地完成这个操作. 首先给出完整的代码,然 ...

随机推荐

  1. npm install 遇到问题的解决

    在利用npm install 命令时,要以管理员权限运行CMD,然后进入到npm-modules目录,然后再执行install命令

  2. FPGA学习笔记(一)——初识FPGA

    ###### [该随笔部分内容转载自小梅哥]       ######### FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可 ...

  3. mvc上传图片

    长时间没有接触mvc,有点生疏了,这次mvc上传图片功能完成后,简单地总结下. 我围绕这三块介绍,首先是前台form表单: <style> #file_name { width: 400p ...

  4. JavaScript设计模式 Item 3 --封装

    在JavaScript 中,并没有对抽象类和接口的支持.JavaScript 本身也是一门弱类型语言.在封装类型方面,JavaScript 没有能力,也没有必要做得更多.对于JavaScript 的设 ...

  5. 1.用互联网的产品思维打造一本app后端的书

    刚刚接触app后端,是做完adidas中国的官方商城的时候,那时不清楚app后端应该怎么架构,只能摸着石头过河,网络上只有一些零散的资料,遇到问题,只能不断地搜索,思考,务必找到解决问题的方法. 在从 ...

  6. 一个简单的例子实现自己的AOP

    AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,与OOP(Object Oriented Programming)面向对象编程对等,都是一种编程思想. 从OO ...

  7. upload.go

    package api import (     "os"     "bytes"     "mime/multipart"     &qu ...

  8. 阅读nsq源码 ---初步架构设计图

     

  9. 将外部dwg图纸中指定带属性的块插入到当前图纸中

    static void InsertBlock() { //获取要插入的块名 TCHAR str[40]; acedGetString(Adesk::kFalse, _T("\n请输入要插入 ...

  10. sublime text3简体中文版汉化教程

    今天突然想到好像还有一个强大的编译器sublime text 3可是这个是外国的编译器,不过各位不用担心 这个编译器,已经支持中文编译了: 下面就是我关于汉化为中文方面的一些了解以及汉化方式(由于我的 ...