时间:2021-05-22
例如:
1、struct中变量名是不可导出的(首写字母是小写的),需要把首写字母改成大写
2、需要传输person的指针
3、struct中json的名字与json中的名字需要一模一样
补充:Go语言处理JSON之——利用Unmarshal解析json字符串
首先还是从官方文档中的例子:
package mainimport ( "fmt" "encoding/json")type Animal struct { Name string Order string}func main() { var jsonBlob = []byte(`[ {"Name": "Platypus", "Order": "Monotremata"}, {"Name": "Quoll", "Order": "Dasyuromorphia"} ]`) var animals []Animal err := json.Unmarshal(jsonBlob, &animals) if err != nil { fmt.Println("error:", err) } fmt.Printf("%+v", animals)}输出:
[{Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia}]简单进行修改,修改为:
package mainimport ( "fmt" "encoding/json")type Animal struct { Name string Order string}func main() { var jsonBlob = []byte(`{"Name": "Platypus", "Order": "Monotremata"}`) var animals Animal err := json.Unmarshal(jsonBlob, &animals) if err != nil { fmt.Println("error:", err) } fmt.Printf("%+v", animals)}输出:
{Name:Platypus Order:Monotremata}解析这样的一个json字符串:
{ "first fruit": { "describe":"an apple", "icon":"appleIcon", "name":"apple" }, "second fruit": { "describe":"an orange", "icon":"orangeIcon", "name":"orange" }, "three fruit array": [ "eat 0", "eat 1", "eat 2", "eat 3", "eat 4" ]}运行结果:
{FirstFruit:0xc00006c5a0 SecondFruit:0xc00006c5d0 THreeFruitArray:[eat 0 eat 1 eat 2 eat 3]}&{Describe:an apple Icon:appleIcon Name:apple}&{Describe:an orange Icon:appleIcon Name:orange}以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用go语言开发过程中,经常需要使用到json包来进行json和struct的互相转换,在使用过程中,遇到了一些需要额外注意的地方,记录如下。整数变浮点数问题
将json转为结构体时,经常会遇到无法确定某个字段类型的情况。在Go中可以使用interface任意类型来解决。//convertjsontostruct//t
一、Json和struct互换(1)Json转struct例子:packagemainimport("fmt""encoding/json")typePeopl
本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法。基本的序列化首先我们来看一下Go语言中json.Mars
vue拍摄键没反应的原因及解决方法有: 1、未给软件赋予相机使用权限,这时用户需要先关闭软件,然后在手机设置为该软件开启相机使用权限。 2、解析包出错,这种