golang json

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

内容简介:第一次写 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]}

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

查看所有标签

猜你喜欢:

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

Algorithms Illuminated (Part 2)

Algorithms Illuminated (Part 2)

Tim Roughgarden / Soundlikeyourself Publishing, LLC / 2018-8-5 / USD 17.99

Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and machine learning. Studying algorithms can......一起来看看 《Algorithms Illuminated (Part 2)》 这本书的介绍吧!

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

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器