golang json

栏目: Go · 发布时间: 5年前

内容简介:第一次写 go 代码,研究了一下 json 解析。没想到事情还挺多。运行的结果

第一次写 go 代码,研究了一下 json 解析。没想到事情还挺多。

package main

import (
	"encoding/json"
	"fmt"
	"github.com/bitly/go-simplejson"
)

type personInfo struct {
	Name  string `json:"name"`
	Age   int    `json:"age"`
	Email string `json:"email" xml:"email"`
}

type personInfo1 struct {
	Name  string `json:"name"`
	Email string `json:"email" xml:"email"`
	C     string
}

func main() {
	// 创建数据
	p := personInfo{Name: "Piao", Age: 10, Email: "piaoyunsoft@163.com"}

	// 序列化
	data, _ := json.Marshal(&p)
	fmt.Println(string(data))

	// 反序列化
	var p1 personInfo1
	err := json.Unmarshal([]byte(data), &p1) // 貌似这种解析方法需要提前知道 json 结构
	if err != nil {
		fmt.Println("err: ", err)
	} else {
		fmt.Printf("name=%s, c=%s, email=%s\n", p1.Name, p1.C, p1.Email)
	}
	fmt.Printf("%+v\n", p1)

	// 反序列化
	res, err := simplejson.NewJson([]byte(data))
	if err != nil {
		fmt.Println("err: ", err)
	} else {
		fmt.Printf("%+v\n", res)
	}
}

运行的结果

➜  test go run main.go
{"name":"Piao","age":10,"email":"piaoyunsoft@163.com"}
name=Piao, c=, email=piaoyunsoft@163.com
{Name:Piao Email:piaoyunsoft@163.com C:}
&{data:map[name:Piao age:10 email:piaoyunsoft@163.com]}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

全景探秘游戏设计艺术

全景探秘游戏设计艺术

Jesse Schell / 吕阳、蒋韬、唐文 / 电子工业出版社 / 2010-6 / 69.00元

撬开你脑子里的那些困惑,让你重新认识游戏设计的真谛,人人都可以成为成功的游戏设计者!从更多的角度去审视你的游戏,从不完美的想法中跳脱出来,从枯燥的游戏设计理论中发现理论也可以这样好玩。本书主要内容包括:游戏的体验、构成游戏的元素、元素支撑的主题、游戏的改进、游戏机制、游戏中的角色、游戏设计团队、如何开发好的游戏、如何推销游戏、设计者的责任等。 本书适合任何游戏设计平台的游戏设计从业人员或即将......一起来看看 《全景探秘游戏设计艺术》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码