教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang 操作json技巧总结(一)

golang 操作json技巧总结(一)

发布时间:2022-12-22   编辑:jiaochengji.com
教程集为您提供golang 操作json技巧总结(一)等资源,欢迎您收藏本站,我们将为您提供最新的golang 操作json技巧总结(一)资源

需求

  • 为了方便elasticsearch查询,需要将源数据的类型由string转成int

背景

  • 源数据为json格式,需要变更类型的字段名为 sequence。

解决方案一

type media struct{
    Sequence  int  `json:"sequence,string"`
}
  • 解析json时会自动将string类型的源数据转成int,不需要再使用strconv包转,非常方便。但是这样解析会有一个弊端。通常会使用 struct 来表示json数据,直接将json数据解析到对应的结构体就行。所以,如果需求仅仅是拉取源数据,存到本地。这个方案是OK的。但是一旦用这个结构体解析本地的数据时,这个字段因为与本地数据库的类型不符,无法拿到sequence字段对应的内容。如果没有别的方案,就只能定义两个结构体,A和B,之间只有一个字段不同。没有充分地复用代码!肯定不能这么干。所幸,还有解决方案2!

解决方案二

type media struct{
    Sequence interface{} `json:"sequence"`
}
  • 把类型改成interface{} !完美解决源数据类型与目标数据类型不一样的问题!用strconv包转化成int,存储!
    sequence,_:= strconv.Atoi(media.Sequence.(string))
    media.Sequence=sequence
到此这篇关于“golang 操作json技巧总结(一)”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
关于python中的Json模块用法及介绍
JQuery将文本转化成JSON对象需要注意的问题
go、golang结构体对象转Json失败原因总结
Golang解析json数据之延迟解码
Golang 深入 slice 实现原理及使用技巧
Go语言爱好者周刊:第 78 期 — 这道关于 goroutine 的题
golang几种常用配置文件使用方法总结(yaml、toml、json、xml、ini)
golang json[]
想系统学习GO语言(Golang
Win8电脑扬声器没有声音怎么办?电脑没声音解决技巧

[关闭]
~ ~