62_json文件解析成结构体格式
Posted zhaopp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了62_json文件解析成结构体格式相关的知识,希望对你有一定的参考价值。
package main
import (
"encoding/json"
"fmt"
)
type People struct
//由于结构体生成json文本成员变量必须大写,可以使用struct_tag来二次编码,此时可以使用小写
Name string `json:"name"`
Subject []string
Isok bool `json:", string"` //转换成字符串类型输出
Price float64 `json:"-"` //不打印
type People1 struct
//由于结构体生成json文本成员变量必须大写,可以使用struct_tag来二次编码,此时可以使用小写
Name string `json:"name"`
func main()
//json文本
JsonBuff := `
"Name":"steven",
"Subject":[
"C++",
"Go",
"Python"
],
"Isok":true,
"Price":66.66
`
var p1 People
err := json.Unmarshal([]byte(JsonBuff), &p1) //这里p1一定是去地址
if err != nil
fmt.Println("err=", err)
return
fmt.Println(p1) //steven [C++ Go Python] true 0
fmt.Printf("%+v\n", p1)
//Name:steven Subject:[C++ Go Python] Isok:true Price:0
//如果只想打印json中某个字段,可以结构体就定义哪一个
var p2 People1
err2 := json.Unmarshal([]byte(JsonBuff), &p2)
if err2 != nil
fmt.Println("err2=", err2)
return
fmt.Println(p2) //
fmt.Printf("%+v\n", p2) //Name:steven
以上是关于62_json文件解析成结构体格式的主要内容,如果未能解决你的问题,请参考以下文章
(三十八)golang--json(对切片map结构体进行序列化)