分享
  1. 首页
  2. 文章

golang中json的使用

skh2015java · · 9629 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang中使用json,经常会使用到两个函数

func Unmarshal(data []byte, v interface{}) error

1 将json反序列化成struct对象

2将json 反序列化到map中

3 将json反序列化到slice中


func Marshal(v interface{}) ([]byte, error)
1将struct对象序列化成json

2将map序列化成json

3将slice序列化成json


package main

import (

"fmt"

"encoding/json"

)

type User struct {

Username string

Password string

FriendName []string

}

func main() {

user:=User{}

user.Username="Tom"

user.Password="123456"

user.FriendName=[]string{"Li","Fei"}

//struct转成json字符串,注意:结构体中的字段首字母必须大写,否则无法解析

if userJSON,err:=json.Marshal(user);err==nil{

fmt.Println(string(userJSON)) //打印结果:{"Username":"Tom","Password":"123456","FriendName":["Li","Fei"]}

}

//slice转成json字符串

arr:=[]string{"Apple","Orange","Banana"}

if arrJSON,err:=json.Marshal(arr);err==nil{

fmt.Println(string(arrJSON)) //打印结果:["Apple","Orange","Banana"]

}

//map转成json字符串

m:=map[string]string{"浙江":"杭州","湖南":"长沙"}

if mJSON,err:=json.Marshal(m);err==nil{

fmt.Println(string(mJSON)) //打印结果:{"浙江":"杭州","湖南":"长沙"}

}

//json转成struct

jsonStr:=`{"Username":"Tom","Password":"123456","FriendName":["Li","Fei"]}`

var userJSON User

if err:=json.Unmarshal([]byte(jsonStr),&userJSON);err==nil{

fmt.Println(userJSON) //打印结果:{Tom 123456 [Li Fei]}

}

//json转成slice

jsonFruit:=`["Apple","Orange","Banana"]`

var arrFruit []string

if err:=json.Unmarshal([]byte(jsonFruit),&arrFruit);err==nil{

fmt.Println(arrFruit) //打印结果:[Apple Orange Banana]

}

//json转成map

jsonCity:=`{"浙江":"杭州","湖南":"长沙"}`

var mapCity map[string]string

if err:=json.Unmarshal([]byte(jsonCity),&mapCity);err==nil{

fmt.Println(mapCity) //打印结果: map[浙江:杭州 湖南:长沙]

}

}





有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:skh2015java

查看原文:golang中json的使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
9629 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏